我有以下简单的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,认为它会使网格分割器跨越我所拥有的两行。但是,当我运行此代码时,我得到了这个。
第二行重叠了网格分割器,它们不可见。蓝线代表轮廓。我只想让垂直网格分割器跨越整个窗口。我在这做错了什么?我甚至在底部宣布了网格分割器。
答案 0 :(得分:1)
样本中多行的唯一问题是它们没有占据网格的全高。
第1行的高度为30
,第2行的高度取决于内容(Auto
)。没有任何内容,它将是0
。屏幕截图上的蓝线不显示真实轮廓。修复布局使第二行填充高度:Height="*"
<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition Height="*"/>
</Grid.RowDefinitions>