Sha*_*ank 101 wpf grid layout xaml
下面的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>
Run Code Online (Sandbox Code Playgroud)
Mar*_*age 158
在WPF网格中定义列时,可以将宽度设置为三个可能值之一:
Auto - 列将变得适合其孩子所需的宽度,或* (星级)占用任何可用的剩余空间在*由多个前缀(如果没有指定数目默认值为1).可用空间按照前缀编号的比例划分为已加星标的列.
如果你有这个定义
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.07*"/>
<ColumnDefinition Width="0.93*"/>
</Grid.ColumnDefinitions>
Run Code Online (Sandbox Code Playgroud)
第一列将获得可用总空间的7%,第二列将获得93%.另一方面,如果你有这个定义:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.07*"/>
<ColumnDefinition Width="0.14*"/>
</Grid.ColumnDefinitions>
Run Code Online (Sandbox Code Playgroud)
第一列将获得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>
Run Code Online (Sandbox Code Playgroud)
如果网格的总宽度为300,则获得列宽50,100和150.如果网格的总宽度为600,则会获得列宽100,200和300.依此类推.