2009-06-01 38 views

回答

2

由于WPF会自动将可用空间传递给子控件的Measure()函数,因此它们的大小适合可用空间,所以没有直接的方法可以做到这一点。

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

搞清楚孩子如何控制宽居然有纯XAML布局是创建一个空的控制,最好的方法 - 例如,一个空网格 - 然后绑定到其ActualWidth的属性:

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

除了显示实际可用于控件的宽度外,我没有在XAML中看到此信息的任何其他用途 - 但我可以想到的所有其他场景都可以隐式使用此信息。你能给我们提供更多关于你想要完成的事情的信息吗?

+0

问题是TabItem不会占用TabControl的所有可用空间(除非我丢失了某些东西)。所以我一直在扩展我的元素到tab控件的宽度,我现在需要放置一个scrollviewer,但我无法弄清楚给我的元素的宽度。 – grizzley 2009-06-01 18:51:28

+0

默认情况下,TabItem的内容应该填充可用空间。你是否无意中设置了Horizo​​ntal/VerticalAlignment属性? – YotaXP 2009-06-01 19:13:13

+0

也许?这里是一个简单的xaml,其中按钮不填充TabItem空间。 grizzley 2009-06-01 21:16:45