我目前创建了一个继承自 Popup
的类。
最后,它将用于在编辑时向用户显示带有验证规则的弹出窗口,例如 TextBox
。
因此,到目前为止,我使用此构造函数创建了 ValidationPopup:
public ValidationPopup(UIElement parent, double width) : base()
{
this.parent = parent;
this.width = width;
InitControl();
}
我想将弹出窗口的大小设置为等于 PlacementTarget 父项的大小。
为了让许多不同的控件能够拥有这些 ValidationPopups 之一,我将
UIElement
作为父级而不是 TextBox
等传递。我的问题是我必须在构建 ValidationPopup 实例时传递此控件的宽度和高度值才能正确调整其大小。
是否可以从
UIElement
获取这些值?我在 MSDN 上看到了 RenderSize,但它只给了我 0.0 的宽度和高度值。
这是我设置 ValidationPopup 的一个实例的地方:
txtOperator = new TextBox();
layoutGrid.Children.Add(txtOperator);
operatorVPU = new ValidationPopup(txtOperator, txtOperator.Width);
我尝试使用 RenderSize 但这在整个 UI 完全完成之前不起作用。
此时有没有办法获取 UIElement 的高度和宽度值?
是否有其他更好的方法可以达到相同的结果?
最佳答案
听起来您需要使用 ActualWidth/Height
属性。如果它们仍然是 0 或 NaN,您可以尝试在 View 创建的稍后部分执行此代码。
关于c# - 获取 UIElement 的高度和宽度?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12987814/