i当前创建一个从 Popup
继承的类。
最后,它将用于在编辑时向用户显示带有验证规则的弹出窗口,例如 TextBox
。
因此,我到目前为止使用此构造函数创建了验证popup:
public ValidationPopup(UIElement parent, double width) : base()
{
this.parent = parent;
this.width = width;
InitControl();
}
我想设置弹出窗口的大小,等于位置图式父母的大小。为了允许许多不同的控件能够拥有这些验证popup之一,我将UIElement
作为父级而不是TextBox
等。我的问题是,在构建验证popup的实例时,我必须通过此控件的宽度和高度值,以便适当地大小。
是否可以从UIElement
获得这些值?我看到MSDN上的渲染大小,但它仅给我0.0值的宽度和高度值。
这是我设置验证popup的一个实例:
txtOperator = new TextBox();
layoutGrid.Children.Add(txtOperator);
operatorVPU = new ValidationPopup(txtOperator, txtOperator.Width);
我尝试使用渲染大小,但这在整个UI完成之前不起作用。
此时是否有一种方法可以获得UIELENT的高度和宽度值?还有其他更好的方法可以实现相同的结果吗?
听起来您需要使用ActualWidth/Height
属性。如果它们仍然是0或NAN,则可以尝试在视图创建的后期执行此代码。