在Scrollviewer中为儿童获取宽度

时间:2009-06-01 17:34:52

标签: wpf scrollviewer

如何在XAML中为滚动查看器的子项获取宽度?感谢。

1 个答案:

答案 0 :(得分:3)

我知道没有直接这样做的方法,因为WPF会自动将可用空间传递给子控件的Measure()函数,以便它们的大小适合可用空间。

请注意,默认情况下,它会在垂直方向上传递无穷大,因为内容可以垂直滚动。您可以在垂直和水平方向上更改滚动条的可见性,以影响无限远是垂直,水平还是两者都传递。

确定子控件实际上在纯XAML中布局的宽度的最佳方法是创建一个空控件 - 例如,一个空网格 - 然后绑定到其ActualWidth属性:

<ScrollViewer>
    <StackPanel>
        <Grid x:Name="MeasureGrid"/>
        <TextBox Text="{Binding ElementName=MeasureGrid, Path=ActualWidth}"/>
    </StackPanel>
</ScrollViewer>

除了显示实际可用于控件的宽度之外,我在XAML中看不到此信息的任何其他用途 - 我能想到的所有其他场景都可以隐式使用此信息。你能告诉我们你想要完成什么的更多信息吗?