如何在XAML中为滚动查看器的子项获取宽度?感谢。
答案 0 :(得分:3)
我知道没有直接这样做的方法,因为WPF会自动将可用空间传递给子控件的Measure()函数,以便它们的大小适合可用空间。
请注意,默认情况下,它会在垂直方向上传递无穷大,因为内容可以垂直滚动。您可以在垂直和水平方向上更改滚动条的可见性,以影响无限远是垂直,水平还是两者都传递。
确定子控件实际上在纯XAML中布局的宽度的最佳方法是创建一个空控件 - 例如,一个空网格 - 然后绑定到其ActualWidth属性:
<ScrollViewer>
<StackPanel>
<Grid x:Name="MeasureGrid"/>
<TextBox Text="{Binding ElementName=MeasureGrid, Path=ActualWidth}"/>
</StackPanel>
</ScrollViewer>
除了显示实际可用于控件的宽度之外,我在XAML中看不到此信息的任何其他用途 - 我能想到的所有其他场景都可以隐式使用此信息。你能告诉我们你想要完成什么的更多信息吗?