1

我有一个包含 StackPanel 和 TreeView 的用户控件。所有控件都有 Height="Auto"

当我在窗口上使用自定义控件并设置高度时,例如高度 = 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>

用户控件内的堆栈面板的高度会增加,但树视图不会。我尝试将树视图放在网格中,到处都是相同的 Setting Height="Auto",到处都是相同的 Setting VerticalAlignment="Strech",相同

Treeview 是数据绑定的,所以我认为它是在绑定数据后自动调整大小,但删除此数据绑定相同的结果。

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

4

1 回答 1

3

如果您要用 DockPanel 替换用户控件中的 StackPanel,TreeView 将默认填充 DockPanel...

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

如何:在 StackPanel 和 DockPanel 之间进行选择

于 2009-09-05T05:17:39.830 回答