【问题标题】:What does * mean in XAMLXAML 中的 * 是什么意思
【发布时间】:2011-09-15 01:03:05
【问题描述】:

XAML 中的 * 是什么意思。我有一个宽度为 400 的网格。并将网格分为 3 列。 *.4 是什么意思?我认为这是可用空间的 40%。所以认为前两列各占 40%,其余由第三列占据。 但看起来,第三列占 60%,前两列各占 20%。 这是如何工作的?

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width=".4*"/>
        <ColumnDefinition Width=".4*"/>
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
</Grid>

【问题讨论】:

    标签: wpf xaml expression-blend


    【解决方案1】:

    基本上,默认值为“1*”,所以你上面的内容是有效的:

    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="0.4*" />
        <ColumnDefinition Width="0.4*" />
        <ColumnDefinition Width="1.0*" />
    </Grid.ColumnDefinitions>
    

    星形网格间距 (GridUnitType.Star) 按比例分配空间。在您的情况下,您总共有 1.8 (1.0 + 0.4 + 0.4),因此前两列各占分配给它们的宽度的 22.2% (0.4/1.8)。

    要得到你想要的,你可以使用:

    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="0.4*" />
        <ColumnDefinition Width="0.4*" />
        <ColumnDefinition Width="0.2*" />
    </Grid.ColumnDefinitions>
    

    这会将总数设置为 1.0,因此每个都变成一个百分比。

    请注意,这将得到与 完全相同的结果

    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="40*" />
        <ColumnDefinition Width="40*" />
        <ColumnDefinition Width="20*" />
    </Grid.ColumnDefinitions>
    

    既然现在总比例除以总数(100),还是给40%、40%、20%。

    【讨论】:

      猜你喜欢
      • 2012-02-16
      • 2011-10-20
      • 2012-02-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-31
      • 2011-08-12
      相关资源
      最近更新 更多