4

現在、を継承するクラスを作成していますPopup

最後に、編集時に検証ルールを含むポップアップをユーザーに表示するために使用されますTextBox

したがって、これまでのところ、このコンストラクターで ValidationPopup を作成しました。

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

ポップアップのサイズを PlacementTarget 親のサイズと同じに設定したいと思います。多くの異なるコントロールがこれらの ValidationPopups の 1 つを持つことができるようにするために、UIElement代わりに親として渡しTextBoxます。適切なサイズにします。

からこれらの値を取得することは可能UIElementですか? MSDN で RenderSize を見ましたが、幅と高さの値が 0.0 しか表示されません。

これは、ValidationPopup の 1 つのインスタンスをセットアップする場所です。

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

RenderSize を使用しようとしましたが、UI 全体が完全に終了するまで機能しません。

この時点で UIElement の Height と Width の値を取得する方法はありますか? 同じ結果を達成するための他のより良い方法はありますか?

4

1 に答える 1

2

ActualWidth/Heightプロパティを使用する必要があるようです。それらがまだ 0 または NaN である場合は、ビュー作成の後半でこのコードを実行してみてください。

于 2012-10-20T11:16:24.430 に答える