我想知道有没有办法通过更改XAML代码来解决这个问题?
请看这张样本图片:
我想要做的是当用户拖动GridSeparater No.1时,我想调整第3行网格的大小。
这是因为在这个应用程序中,第一行和第三行是可变大小,但第二行是固定大小。
这可能吗?
答案 0 :(得分:4)
这可以通过ResizeBehaviour="PreviousAndNext"
(Link to MSDN)实现。这使您可以指定相对于GridSplitter应该受影响的行。
<Grid Width="300" Height="200" Background="Yellow" ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="20"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<GridSplitter Grid.Row="1"
ResizeDirection="Rows"
ResizeBehavior="PreviousAndNext"
HorizontalAlignment="Stretch"
VerticalAlignment="Top"
Background="Black"
ShowsPreview="True"
Height="5"
/>
</Grid>
答案 1 :(得分:1)
您可以尝试将MinHeight和MaxHeight设置为中心行的相同值,这会在调整顶部大小时强制重新计算底部。像这样:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="50" MaxHeight="50" MinHeight="50"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
... other content
<GridSplitter Height="3" Grid.Row="1" HorizontalAlignment="Stretch"/>
<GridSplitter Height="3" Grid.Row="3" HorizontalAlignment="Stretch"/>
</Grid>