2009-09-05 100 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