在WPF中,以大小表示的星星到底是什么意思?
bweufnob1#
在WPF网格中,Width="*"或Height="*"表示按比例调整大小。例如:将30%分配给第1列,将70%分配给第2列-
Width="*"
Height="*"
<ColumnDefinition Width="3*" /> <ColumnDefinition Width="7*" />
行也是一样-
<RowDefinition Height="3*" /> <RowDefinition Height="7*" />
数字不必是整数。如果省略RowDefinition的Width(ColumnDefinition的Height),则隐含1*。在此示例中,列1的宽度是列2的1.5倍-
<ColumnDefinition Width="1.5*" /> <ColumnDefinition />
您可以将自动调整和固定宽度与 (比例)宽度混合使用;在这种情况下, 列将在计算出自动调整和固定宽度后分配给其余列-
<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" />
qnzebej02#
如果您有2个这样的栏:
<ColumnDefinition Width="10*"/> <ColumnDefinition Width="*"/>
这意味着第一列比第二列宽10倍。这就像说"10份第一列,1份第二列"。最酷的是你的列将按比例调整大小。其他选项有:
//Take up as much space as the contents of the column need <ColumnDefinition Width="Auto"/> //Fixed width: 100 pixels <ColumnDefinition Width="100"/>
希望这对你有帮助!
nwlqm0z13#
我们举以下例子.....网格有3列,每列包含一个宽度为100的按钮。
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>
结论:
Auto
*
guykilcj4#
此外,如果“*”是单位大小的元素,你可以省略它,所以用Pwninstein的代码示例,它将是:
<ColumnDefinition Width="10*/> <ColumnDefinition/>
4条答案
按热度按时间bweufnob1#
在WPF网格中,
Width="*"
或Height="*"
表示按比例调整大小。例如:将30%分配给第1列,将70%分配给第2列-
行也是一样-
数字不必是整数。
如果省略RowDefinition的Width(ColumnDefinition的Height),则隐含1*。
在此示例中,列1的宽度是列2的1.5倍-
您可以将自动调整和固定宽度与 (比例)宽度混合使用;在这种情况下, 列将在计算出自动调整和固定宽度后分配给其余列-
qnzebej02#
如果您有2个这样的栏:
这意味着第一列比第二列宽10倍。这就像说"10份第一列,1份第二列"。
最酷的是你的列将按比例调整大小。其他选项有:
希望这对你有帮助!
nwlqm0z13#
我们举以下例子.....
网格有3列,每列包含一个宽度为100的按钮。
XAML代码为...
但实际上它的大小是....
结论:
Auto
:根据列的内容调整列的大小。(第二列的按钮宽度为100)*
:第一列宽度是第三列宽度的3倍。guykilcj4#
此外,如果“*”是单位大小的元素,你可以省略它,所以用Pwninstein的代码示例,它将是: