WPF明星做什么(宽度=“100 *”)

WPF中的星号是什么意思?

在WPF Grid中, Width="*"Height="*"表示比例大小。
例如:给第1列30%,第2列给70%

 <ColumnDefinition Width="3*" /> <ColumnDefinition Width="7*" /> 

在这里输入图像说明

而且对于行 –

 <RowDefinition Height="3*" /> <RowDefinition Height="7*" /> 

数字不一定是整数。
如果RowDefinition的宽度(用于ColumnDefinition的高度)被省略,则隐含1 *。
在这个例子中,第1列比第2列宽1.5倍 –

 <ColumnDefinition Width="1.5*" /> <ColumnDefinition /> 

第1栏:1.5 *,第2栏1 *(暗示)

您可以将自动拟合和固定宽度与*(成比例)宽度混合; 在这种情况下,在自动拟合宽度和固定宽度已经被计算之后,*列将被分配给剩余的列 –

 <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <!-- Auto-fit to content, 'Hi' --> <ColumnDefinition Width="50.5" /> <!-- Fixed width: 50.5 device units) --> <ColumnDefinition Width="69*" /> <!-- Take 69% of remainder --> <ColumnDefinition Width="31*"/> <!-- Take 31% of remainder --> </Grid.ColumnDefinitions> <TextBlock Text="Hi" Grid.Column="0" /> 

在这里输入图像说明

如果你有2列这样的:

 <ColumnDefinition Width="10*"/> <ColumnDefinition Width="*"/> 

这意味着第一列比第二列宽10倍。 就像是说“10部分第1栏,1部分第2栏”。

关于这个很酷的事情是,你的专栏将按比例resize。 其他选项是:

 //Take up as much space as the contents of the column need <ColumnDefinition Width="Auto"/> //Fixed width: 100 pixels <ColumnDefinition Width="100"/> 

希望有所帮助!

我们以下面的例子…..

一个网格和3列,每个包含一个大小为100的button。

在这里输入图像说明

XAML代码是…

  <Grid x:Name="LayoutRoot" Width="600"> <Grid.ColumnDefinitions> <ColumnDefinition Width="3*" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="10,10,0,0" Name="button1" VerticalAlignment="Top" Width="100" /> <Button Content="Button1" Height="23" HorizontalAlignment="Left" Margin="0,10,0,0" Name="button2" VerticalAlignment="Top" Width="100" Grid.Column="1" /> <Button Content="Button2" Height="23" HorizontalAlignment="Left" Margin="0,10,0,0" Name="button3" VerticalAlignment="Top" Width="100" Grid.Column="2" /> </Grid> 

但其实它的大小是…

 <Grid.ColumnDefinitions> <ColumnDefinition Width="375" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="125" /> </Grid.ColumnDefinitions> 

结论:

网格的总大小是600

“自动”:列是包含它的重新大小。 (第二栏有宽度100的button)

“*”:第一列宽度是第三列的3倍。

另外,如果这是单位大小的元素,则可以省略“*”。 所以使用Pwninstein的代码示例,它只是:

 <ColumnDefinition Width="10*/> <ColumnDefinition/>