首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ColumnDefinition MinWidth不能正常工作

ColumnDefinition MinWidth不能正常工作
EN

Stack Overflow用户
提问于 2010-02-26 16:07:33
回答 2查看 6.5K关注 0票数 3

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

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

代码语言:javascript
复制
  <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列的宽度不同。我希望所有这些都具有相同的宽度。

有没有人知道这是个bug。如果有一种方法可以正确地做到这一点。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-26 16:57:56

我明白你的意思了-黄色那一列左边的列比右边的列宽,尽管它们的比例应该是一样的。

我会说这是一个错误,特别是当您考虑到以下解决方法在中起作用时

代码语言:javascript
复制
<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>

我猜这个bug与列的宽度分组方式有关……

票数 10
EN

Stack Overflow用户

发布于 2010-02-26 16:40:52

它看起来就像它的工作方式。你已经将网格限制在500点,并说:嘿,给所有的网格列相同的宽度,但这一列至少应该是250点。现在WPF给你的问题是:伙计,我看到你要求我给9列中的每列至少250分,我怎么才能在500分的情况下做到这一点?它做出了一个决定,尊重你的最小宽度,但代价是其余列的宽度。

至于正确做到这一点的方法。你是什么意思?你想要什么?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2340233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档