XAML中的*含义是什么。我有一个宽度为400的网格。并将网格划分为3列。 * .4是什么意思?我认为这是可用空间的40%。因此,前两列将分别获得40%的百分比,其余的则由第三列获得。 但看起来,第三列占60%,前两个占20%。 这是如何工作的?
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width=".4*"/>
<ColumnDefinition Width=".4*"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
</Grid>
答案 0 :(得分:13)
基本上,默认值是“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%。