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

发布于 2024-10-27 14:40:50 字数 235 浏览 0 评论 0原文

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

请看这个示例图片:

在此处输入图像描述

我想要做的是当用户拖动 GridSeparater No.1 时,我想要调整网格第三行的大小。

这是因为在此应用程序中,第一行和第三行的大小可变,但第二行的大小固定。

这可能吗?

I am wondering is there any way to solve this by changing XAML code?

Please look at this sample picture:

enter image description here

What I wants to do is when user dragging GridSeparater No.1, I want to resize thr 3rd row of grid.

This is because in this application, the first and third rows are variable size, but second one is fixed size.

Is that possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

撕心裂肺的伤痛 2024-11-03 14:40:50

这可以通过 ResizeBehaviour="PreviousAndNext" (链接到 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>

This is possible with ResizeBehaviour="PreviousAndNext" (Link to MSDN). This enables you to specify which rows should be affected relative to the 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>
流云如水 2024-11-03 14:40:50

您可以尝试在中心行上将 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>

You could try setting both MinHeight and MaxHeight to the same value on the center row which would force recalculation of the bottom section when resizing the top. Something like this:

  <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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文