我有一个包含StackPanel和TreeView的用户控件。 所有控件都具有高度=“自动”
当我在窗口上使用自定义控件并设置高度时,请说高度= 800 堆栈面板增长到这个高度,但TreeView不会自动调整高度。
用户控件:
<UserControl x:Class="WPFDataBinding.ucCompanyTreeView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="200" Width="300" Loaded="UserControl_Loaded">
<StackPanel>
<TextBlock Background="#505050" Foreground="Gold">Companys</TextBlock>
<TreeView Name="myTreeView" ItemTemplate="{StaticResource DetailTemplate}">
</TreeView>
</StackPanel>
Window1.xaml:
<StackPanel Orientation="Horizontal">
<local:ucCompanyTreeView Width="400" Height="600">
</local:ucCompanyTreeView>
</StackPanel>
用户控件内的stackpanel的高度会增加,但Tree视图的高度却不会增加。 我尝试将树视图放在网格中,相同 到处设置高度=“自动”,相同 在任何地方设置VerticalAlignment =“Strech”,相同
Treeview是数据绑定的,所以我认为在数据绑定后它是自动调整大小,但删除此数据绑定的结果相同。
我可以通过调整事件来实现....但我之前遇到过这个问题,只是想了解“某些”控件的高度继承背后的逻辑。
答案 0 :(得分:3)
如果您要使用DockPanel替换用户控件中的StackPanel,TreeView将默认填充DockPanel ...
<DockPanel>
<TextBlock DockPanel.Dock="Top" Background="#505050" Foreground="Gold">Companys</TextBlock>
<TreeView Name="myTreeView" ItemTemplate="{StaticResource DetailTemplate}">
</TreeView>
</DockPanel>