网格行隐藏儿童其他元素

时间:2016-10-25 06:01:52

标签: c# wpf

我有以下简单的WPF代码,我期望在列上创建一个带有网格分割器的2行3列网格。但只要我不拆分网格中的行,网格分割器就是可见的并且工作正常。

以下是示例代码:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="100" />
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="100" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="30"  />
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <GridSplitter Grid.Column="1"
                  Grid.RowSpan="2"
          HorizontalAlignment="Left" 
          VerticalAlignment="Stretch"
          Background="LightGray" 
          ShowsPreview="true"
          Width="3" />
    <GridSplitter Grid.Column="2"
                  Grid.RowSpan="2"
          HorizontalAlignment="Left" 
          VerticalAlignment="Stretch"
          Background="LightGray" 
          ShowsPreview="true"
          Width="3"/>
    <!--Button x:Name="button" Grid.Row="1" Content="Button" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75" Height="27" Grid.Column="1" Margin="19,42,0,0" /-->
</Grid>

我给了Grid.RowSpan = 2,认为它会使网格分割器跨越我所拥有的两行。但是,当我运行此代码时,我得到了这个。

enter image description here 第二行重叠了网格分割器,它们不可见。蓝线代表轮廓。我只想让垂直网格分割器跨越整个窗口。我在这做错了什么?我甚至在底部宣布了网格分割器。

1 个答案:

答案 0 :(得分:1)

样本中多行的唯一问题是它们没有占据网格的全高。

第1行的高度为30,第2行的高度取决于内容(Auto)。没有任何内容,它将是0。屏幕截图上的蓝线不显示真实轮廓。修复布局使第二行填充高度:Height="*"

<Grid.RowDefinitions>
    <RowDefinition Height="30"  />
    <RowDefinition Height="*"/>
</Grid.RowDefinitions>