代码之家  ›  专栏  ›  技术社区  ›  Steve

XAML树视图垂直展开

  •  1
  • Steve  · 技术社区  · 14 年前

    我希望下面的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>
    
    1 回复  |  直到 14 年前
        1
  •  2
  •   Quartermeister    14 年前

    你有 VerticalAlignment="Top" 这意味着树视图将只达到它想要的高度,并且将被放置在可用空间的顶部。你想设置 VerticalAlignment 拉伸以占据所有可用的垂直空间。因为这是默认值,所以您只需删除属性:

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