在 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 的特定情况下,您将获得以下列宽度:
第一列宽度 = 40/(40 + 314)*354 = 40
第二列宽 = 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。依此类推。