2010-07-14 5 views
1

Je souhaite que le TreeView ci-dessous se développe pour remplir la ligne actuelle dans laquelle il est contenu, cependant, je n'arrive pas à comprendre comment cela est fait. Il se développe juste pour s'adapter aux éléments de l'arbre. Est-ce possible et si oui comment?XAML TreeView Développez verticalement

Merci

<Window x:Class="WorkoutUI.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" Name="Window" Height="350" Width="525"> 
    <Grid Name="Root_Grid"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="10" /> 
      <RowDefinition Height="*" Name="Root_Grid_Row_2" /> 
      <RowDefinition Height="10" />    
     </Grid.RowDefinitions> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="5" /> 
      <ColumnDefinition Width="150" /> 
      <ColumnDefinition Width="*" /> 
      <ColumnDefinition Width="5" /> 
     </Grid.ColumnDefinitions> 

     <TreeView Grid.Column="1" Grid.Row="1" VerticalAlignment="Top" VerticalContentAlignment="Stretch" Width="{Binding Width, ElementName=Root_Grid, Mode=Default}"> 
      <TreeViewItem Header="Workouts" IsExpanded="True"> 
       <TreeViewItem Header="Workout1" /> 
       <TreeViewItem Header="Workout2" /> 
       <TreeViewItem Header="Workout3" IsExpanded="True"> 
        <TreeViewItem Header="WorkoutSub1" /> 
        <TreeViewItem Header="WorkoutSub2" /> 
        <TreeViewItem Header="WorkoutSub3" /> 
       </TreeViewItem>  
       <TreeViewItem Header="Workout4" /> 
       <TreeViewItem Header="Workout5" /> 
       <TreeViewItem Header="Workout6" />     
      </TreeViewItem>    
     </TreeView> 
    </Grid> 
</Window> 

Répondre

2

Vous avez VerticalAlignment="Top", ce qui signifie que le TreeView ne sera aussi grand qu'il veut être et sera placé dans la partie supérieure de l'espace disponible. Vous voulez définir le VerticalAlignment sur Stretch afin qu'il prenne tout l'espace vertical disponible. Comme il s'agit de la valeur par défaut, vous pouvez simplement supprimer l'attribut:

<TreeView Grid.Column="1" Grid.Row="1" Width="{Binding Width, ElementName=Root_Grid, Mode=Default}">