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 回答