2009-09-05 86 views
1

我有一个用户控件,其中包含一个StackPanel和TreeView。 所有控件具有高度=“自动”WPF UserControl TreeView Height

当我使用一个窗口上的自定义控制,并设置身高,说身高= 800 堆栈小组长到这个高度,但树视图不会自动高度调整。

用户控件:

<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的高度增长,但树视图不。 我试图把树视图中的网格,相同 设置高度=“自动”无处不在,一样 设置VerticalAlignment =“STRECH”无处不在,一样

树视图中的数据绑定,所以我认为这是自动调整大小数据绑定后,但删除此数据绑定相同的结果。

我可以通过大小事件来做到这一点....但我之前就有过这个问题,只是想了解“一些”控件的高度继承背后的逻辑。

回答

3

如果您要更换的StackPanel与DockPanel中的用户控件时,TreeView将填补默认DockPanel中......

<DockPanel> 
    <TextBlock DockPanel.Dock="Top" Background="#505050" Foreground="Gold">Companys</TextBlock> 
    <TreeView Name="myTreeView" ItemTemplate="{StaticResource DetailTemplate}"> 
    </TreeView> 
</DockPanel> 

How to: Choose Between StackPanel and DockPanel