【问题标题】: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%。