0

表示したい多数の UIElements (XAML ファイルのテンプレートを使用して構築されたもの) を含む StackPanel があります。

正しく表示するには、そのサイズを知る必要があります。

最初 Width/Height/ActualWidth/ActualHeight/DesiredSizeはすべて 0 または NaN です。panel.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity)) を呼び出すと、その ActualWidth/ActualHeight/DesiredSize が計算されます (Width/Height は NaN のままです)。ここまでは順調ですね。

ただし、ActualWidth / DesiredSize.Width は、XAML テンプレートで指定された MinWidth 値に設定されますが、描画時にスタックパネルがこれよりも広くなります。

レンダリングされたサイズが ActualWidth/ActualHeight プロパティと一致しないのはなぜですか?

パネルを正しく配置できるようにレンダリング サイズを決定するにはどうすればよいですか?

(パネルは、マウス ポインターの近くに表示する必要があるポップアップ ツールチップ用ですが、ツールチップが許可された領域をオーバーフローする場合は、その位置を調整する必要があります)。

4

1 に答える 1

1

コントロールのイベントをリッスンしてSizeChanged、サイズの変更を監視できます。コントロールがレンダリングされるまで、すべてのサイズ プロパティは0/NaN.

于 2011-02-17T12:58:14.080 に答える