2009-09-05 9 views
1

J'ai un contrôle utilisateur qui contient un StackPanel et un TreeView. Tous les contrôles ont la hauteur = « Auto »WPF UserControl TreeView Hauteur

Lorsque j'utilise le contrôle personnalisé sur une fenêtre et régler la hauteur, disons Hauteur = 800 Le panneau Stack pousse à cette hauteur, mais la TreeView ne pas la hauteur de réglage automatique.

UserControl:

<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> 

La hauteur du StackPanel à l'intérieur du usercontrol pousse, mais la vue des arbres ne fonctionne pas. J'ai essayé de placer l'arborescence dans une grille, même Réglage hauteur = « auto » partout, même Réglage VerticalAlignment = « Strech » partout, même

Le Treeview était lié aux données, donc je pensais qu'il était le dimensionnement automatique après que les données ont été liées, mais en supprimant ces données liant les mêmes résultats.

Je peux le faire à travers des événements de dimensionnement .... mais j'ai déjà eu ce problème et je veux juste comprendre la logique derrière l'héritage de hauteur de "certains" contrôles.

Répondre

3

Si vous deviez remplacer le StackPanel dans le contrôle de l'utilisateur avec un DockPanel, le TreeView remplirait le DockPanel par défaut ...

<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