ColumnDefinition MinWidth 无法正常工作

2024-04-09

我在 WPF (xaml) 中使用网格,并且在 ColumnDefinition 中使用 MinWidth 属性时出现一些奇怪的效果。例如,当我使用 9 ColumnDefinition 并且每个 ColumnDefinition 都有 'Width="*"' 属性并且中间列之一也有 MinWidth 属性时,其他列的大小是错误的。

好吧,这很难描述,但这个 xaml 代码很好地说明了这一点:

  <Grid Width="500">  
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="*" MinWidth="250"/>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    <Border Grid.Column="0" Background="Green"/>
    <Border Grid.Column="1" Background="Blue"/>
    <Border Grid.Column="2" Background="Red"/>
    <Border Grid.Column="3" Background="Yellow"/>
    <Border Grid.Column="4" Background="Purple"/>
    <Border Grid.Column="5" Background="Orange"/>
    <Border Grid.Column="6" Background="Azure"/>
    <Border Grid.Column="7" Background="LightBlue"/>
    <Border Grid.Column="9" Background="LightGreen"/>
  </Grid>

当您运行此 xaml 代码时,您将看到前 3 列的宽度与后 5 列的宽度不同。我期望所有这些都具有相同的宽度。

有谁知道这是否是一个错误。如果有一种方法可以正确地做到这一点。

提前致谢。


我明白你的意思 - 黄色左边的列比右边的列宽,尽管它们应该具有相同的比例。

我想说这是一个错误,特别是当您考虑以下解决方法时works:

<Grid.ColumnDefinitions>
    <ColumnDefinition Width="*"/>
    <ColumnDefinition Width="*"/>
    <ColumnDefinition Width="*"/>
    <ColumnDefinition Width="1.0000001*" MinWidth="250"/>
    <ColumnDefinition Width="*"/>
    <ColumnDefinition Width="*"/>
    <ColumnDefinition Width="*"/>
    <ColumnDefinition Width="*"/>
    <ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>

我猜想这个错误与列如何按宽度分组有关......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ColumnDefinition MinWidth 无法正常工作 的相关文章

随机推荐