绑定XAML TreeView的MaxHeight到容器高度
本文关键字:高度 MaxHeight XAML TreeView 绑定 | 更新日期: 2023-09-27 17:49:53
我有一个问题,我想绑定我的TreeView的最大高度到我的UserControl的高度,但绑定不起作用。
我试了下面的
<UserControl>
<StackPanel Name="Container">
<TextBlock>Header</TextBlock>
<TreeView MaxHeight="{Binding ElementName=Container,Path=ActualHeight}"></TreeView>
</StackPanel>
</UserControl>
我希望,如果我调整我的窗口大小,UserControl调整大小,所以TreeView也调整大小,所以如果窗口太小,TreeView滚动条出现。但我得到的是没有滚动条和内容的TreeView到达窗口外,是不可见的。
这是一个非常常见的错误。StackPanel
没有任何调整大小的功能,应该只用于最基本的布局目的。相反,使用Grid Panel
,它将自动调整其子控件的大小:
<UserControl>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<TextBlock>Header</TextBlock>
<TreeView Grid.Row="1" />
</Grid>
</UserControl>
您可以使用DockPanel
:
<DockPanel LastChildFill="True">
<TextBlock DockPanel.Dock="Top">Header</TextBlock>
<TreeView DockPanel.Dock="Top" MaxHeight="{Binding ElementName=Container,Path=ActualHeight}"></TreeView>
</DockPanel>