下面的XAML中*(星号)是什么意思?
<ColumnDefinition Width="0.07*"/>
<Grid Height="100" HorizontalAlignment="Left"
Margin="102,134,0,0"
Name="grid1" VerticalAlignment="Top"
Width="354">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="40*" />
<ColumnDefinition Width="314*" />
</Grid.ColumnDefinitions>
</Grid>
答案 0 :(得分:150)
在WPF网格中定义列时,可以将宽度设置为三个可能值之一:
Auto
- 列将根据需要加宽以适应其子项,或*
(星级)占用剩余空间 *
以数字为前缀(如果未指定数字,则默认为1)。可用空间按照前缀编号的比例划分为已加星标的列。
如果你有这个定义
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.07*"/>
<ColumnDefinition Width="0.93*"/>
</Grid.ColumnDefinitions>
第一列将获得可用总空间的7%,第二列将获得93%。另一方面,如果你有这个定义:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.07*"/>
<ColumnDefinition Width="0.14*"/>
</Grid.ColumnDefinitions>
第一列将获得1/3,第二列将获得可用空间的2/3。
在特定情况下,网格的宽度为354,两列的比例为40和314,您将获得以下列宽:
First column width = 40/(40 + 314)*354 = 40 Second coulmn width = 314/(40 + 314)*354 = 314
当网格宽度不固定时,最好使用星形宽度。调整网格大小后,列将按照星形宽度的指定按比例缩放。在您的情况下,网格的宽度是固定的,您可以很容易地使用固定宽度列。
如果你想要一个布局,其中第二列是第一列的宽度,第三列的宽度是第一列的宽度的三倍,你需要这个定义:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
如果网格的总宽度为300,则会得到列宽50,100和150.如果网格的总宽度为600,则会得到列宽100,200和300.依此类推。
答案 1 :(得分:2)
它与任何其他星形宽度列的比率为0.07 - 即如果另一个ColomnDefinition的宽度为0.14,那么该列的宽度是其宽度的两倍=它的所有关于口粮
答案 2 :(得分:1)
使用比率创建列大小。如果你有另一个定义,如<ColumnDefinition Width="0.03*"/>
,第一列将占用70%的空间,第二列将占用30%。
答案 3 :(得分:0)
[..]一个值,表示为可用空间的加权比例。