【问题标题】:Grid Columns with different resize "priorities"具有不同调整大小“优先级”的网格列
【发布时间】:2016-02-05 11:43:10
【问题描述】:

我的布局有 5 列(1 和 5 相同大小,2 和 4 相同大小):

| 1 | 2 | 3 | 4 | 5 |

我们允许用户水平调整应用程序的大小(缩小),我想要实现的行为如下:缩小第 1 列和第 5 列,直到它们消失

|1| 2 | 3 | 4 |5|

|| 2 | 3 | 4 ||

| 2 | 3 | 4 |

只有这样,才开始缩小 2 和 4 直到最小宽度(3 始终保持相同的大小)

我已经尝试过使用单个网格和嵌套网格,但我无法重现预期的行为。正如标题所说,我想优先考虑哪些列首先收缩。

【问题讨论】:

    标签: wpf xaml


    【解决方案1】:

    您可以使用三个网格来生成它

    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <Grid  x:Name="Grid1" Grid.Column="0">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="Auto"/>
            </Grid.ColumnDefinitions>            
            <Rectangle Fill="LightBlue" Grid.Column="0" Width="200"/>
            <Rectangle Fill="LightGreen" Grid.Column="1" Width="100"/>
        </Grid>
    
            <Grid  x:Name="Grid3" Grid.Column="1">
                <Rectangle Fill="Black" Width="100"/>
            </Grid>
    
        <Grid x:Name="Grid5" Grid.Column="2">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>
            <Rectangle Fill="LightGreen" Grid.Column="0" Width="100"/>
            <Rectangle Fill="LightBlue" Grid.Column="1" Width="200"/>
        </Grid>
    </Grid>
    

    The Result

    【讨论】:

      【解决方案2】:

      这里是例子。

      <Grid>
          <Grid.ColumnDefinitions>
              <ColumnDefinition Width="*" />
              <ColumnDefinition Width="1000*" MaxWidth="300" />
              <ColumnDefinition Width="*" />
          </Grid.ColumnDefinitions>
          <Grid Grid.Column="0" Background="White" />
          <Grid Grid.Column="2" Background="White" />
          <Grid Grid.Column="1">
              <Grid.ColumnDefinitions>
                  <ColumnDefinition Width="*" />
                  <ColumnDefinition Width="1000*" MaxWidth="100" />
                  <ColumnDefinition Width="*" />
              </Grid.ColumnDefinitions>
              <Grid Grid.Column="0" Background="PaleGreen" />
              <Grid Grid.Column="2" Background="PaleGreen" />
              <Grid Grid.Column="1" Background="WhiteSmoke" />
          </Grid>
      </Grid>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-10
        • 1970-01-01
        相关资源
        最近更新 更多