kat*_*e77 10 wpf xaml expression-blend
*在XAML中意味着什么.我有一个宽度为400的网格.并将网格划分为3列.*.4是什么意思?我认为这是可用空间的40%.因此,前两列将分别获得40%的百分比,其余的则由第三列获得.但看起来,第三列占60%,前两个占20%.这是如何运作的?
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width=".4*"/>
<ColumnDefinition Width=".4*"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
</Grid>
Run Code Online (Sandbox Code Playgroud)
Ree*_*sey 13
基本上,默认值是"1*",所以你有效的是:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.4*" />
<ColumnDefinition Width="0.4*" />
<ColumnDefinition Width="1.0*" />
</Grid.ColumnDefinitions>
Run Code Online (Sandbox Code Playgroud)
星形网格间距(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>
Run Code Online (Sandbox Code Playgroud)
这将总数设置为1.0,因此每个都变为百分比.
请注意,这将产生与执行完全相同的结果:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="40*" />
<ColumnDefinition Width="40*" />
<ColumnDefinition Width="20*" />
</Grid.ColumnDefinitions>
Run Code Online (Sandbox Code Playgroud)
由于总比例现在除以总数(100),仍然给出40%,40%,20%.