在WPF中调整另一个网格行大小

在WPF中调整另一个网格行大小,wpf,grid,resize,Wpf,Grid,Resize,我想知道有没有办法通过改变XAML代码来解决这个问题 请看此示例图片: 我想做的是当用户拖动GridSeparator No.1时,我想调整网格第三行的大小 这是因为在这个应用程序中,第一行和第三行的大小是可变的,而第二行的大小是固定的 这可能吗?您可以尝试将中间行的MinHeight和MaxHeight设置为相同的值,这将在调整顶部大小时强制重新计算底部。大概是这样的: <Grid> <Grid.RowDefinitions> <RowDe

我想知道有没有办法通过改变XAML代码来解决这个问题

请看此示例图片:

我想做的是当用户拖动GridSeparator No.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>
这可以通过ResizeBehaviour=PreviousAndNext实现。这使您能够指定哪些行相对于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>

酷-不知道ResizeBehaviour。学到了一些东西,谢谢!不错!我发现ShowsPreview=True非常重要。如果不设置该属性,GridSplitter行为将允许您完全折叠顶行,并且无法将其取回+1.