2010-07-14 98 views
1

我想将下面的TreeView展开以填充它所包含的当前行,但是,我无法弄清楚这是如何完成的。它只是扩大到适合树项目。这可以做到,如果是这样,怎么做?XAML TreeView垂直展开

感谢

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

回答

2

你有VerticalAlignment="Top",这意味着它要成为和将被放置在可用空间的顶部TreeView的只会是一样高。你想设置VerticalAlignment拉伸,以便它将占用所有可用的垂直空间。由于这是默认设置,因此您可以删除该属性:

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