1

UIElement複数の子( s)を含むことができるコントロール(グリッドのように見えます)を作成しました。レイアウト全体をコードで測定して配置します。現在、これらの要素のいくつかはxamlで幅を定義していますが、それを持たないものもあります。

エレメントの幅が固定されているか、または使用可能な幅全体を使用する必要があるかどうかを、measureOverride / Arrangeoverrideでどのように知ることができますか?

XAMLの例:

<MyControl>
   <TextBox x:Name="TextA" Text="TextFixed" Width="10"/>
   <TextBox x:Name="TextB" Text="TextStretch"/>
</MyControl>

uielement.Measure()の後のMeasureOverrideメソッド内では、サイズはその要素に必要な最小サイズです。「TextB」の利用可能な幅をいつ計算する必要があるかを確認する方法がわかりません...

アップデート:

MeasureOverride()では、両方の要素にHorizo​​ntalAlignment'Stretch'があり、uiElement.Measure(availableSize)の後には両方ともDesiredSize.Widthがあります。その幅は、必要な最小幅です。この情報では、2つの要素のどちらを伸ばす必要があるかを知ることができません。

4

2 に答える 2

1

コントロールのプロパティを見てくださいHorizontalVerticalAlignment

そうでない場合Stretch、コントロールは固定サイズのみを取る必要があります。

于 2012-12-07T07:39:11.767 に答える
0

私の問題の解決策はArrangeOverride()、要素が幅を2倍にすることになっているときに幅をチェックすることでした。NaN

于 2012-12-10T13:14:45.477 に答える