2

XAMLでスクロールビューアの子が使用できる幅を取得するにはどうすればよいですか?ありがとう。

4

1 に答える 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 に答える