4

我目前创建了一个继承自Popup.

最后,它将用于在编辑时向用户显示带有验证规则的弹出窗口,例如TextBox.

因此,到目前为止,我使用此构造函数创建了 ValidationPopup:

public ValidationPopup(UIElement parent, double width) : base()
{
   this.parent = parent;
   this.width = width;
   InitControl();
}

我想将弹出窗口的大小设置为 PlacementTarget 父级的大小。为了让许多不同的控件能够拥有这些 ValidationPopups 之一,我将一个UIElement作为父级而不是TextBoxetc 传递。我的问题是,在构建 ValidationPopup 的实例时,我必须传递该控件的宽度和高度值,以便适当调整大小。

是否可以从中获取这些值UIElement?我在 MSDN 上看到了 RenderSize,但它只给了我 0.0 的宽度和高度值。

这是我设置 ValidationPopup 的一个实例的地方:

txtOperator = new TextBox();
layoutGrid.Children.Add(txtOperator);
operatorVPU = new ValidationPopup(txtOperator, txtOperator.Width);

我尝试使用 RenderSize 但这在整个 UI 完全完成之前不起作用。

此时有没有办法获取 UIElement 的高度和宽度值?是否有其他更好的方法可以达到相同的结果?

4

1 回答 1

2

听起来您需要使用这些ActualWidth/Height属性。如果它们仍然是 0 或 NaN,您可以尝试在视图创建的稍后部分执行此代码。

于 2012-10-20T11:16:24.430 回答