XAMLでスクロールビューアの子が使用できる幅を取得するにはどうすればよいですか?ありがとう。
2153 次
1 に答える
3
WPF は使用可能なスペースを子コントロールの Measure() 関数に自動的に渡し、使用可能なスペースに合わせてサイズを調整するため、私が知っている直接的な方法はありません。
デフォルトでは、コンテンツは垂直方向に無限にスクロールできるため、垂直方向に無限に渡されることに注意してください。スクロール バーの可視性を垂直方向と水平方向の両方で変更して、無限を垂直方向、水平方向、またはその両方で渡すかどうかに影響を与えることができます。
純粋な XAML で子コントロールを実際にレイアウトする必要がある幅を把握する最善の方法は、空のコントロール (たとえば、空のグリッド) を作成し、その ActualWidth プロパティにバインドすることです。
<ScrollViewer>
<StackPanel>
<Grid x:Name="MeasureGrid"/>
<TextBox Text="{Binding ElementName=MeasureGrid, Path=ActualWidth}"/>
</StackPanel>
</ScrollViewer>
コントロールで実際に使用できる幅を表示する以外に、XAML でこの情報を使用する方法は他にありません。考えられる他のすべてのシナリオでは、この情報を暗黙的に使用できます。あなたが達成しようとしていることについて、より多くの情報を提供していただけますか?
于 2009-06-01T18:33:23.797 に答える