RowDefinition Height ="10*"在XAML网格中的含义是什么?

Edw*_*uay 63 wpf grid xaml

我使用Height ="*"来表示最后一行的高度应该填充到网格的底部.

但"10*"是什么意思?

<Grid Name="mainGrid">
    <Grid.RowDefinitions>
        <RowDefinition Height="100" />
        <RowDefinition Height="40" />
        <RowDefinition Height="10*" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="200"  />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
</Grid>
Run Code Online (Sandbox Code Playgroud)

Ken*_*art 104

"*"是简写"1*".这是一个比例,所以如果你有两行,一个有一个"*"和一个有"10*",前者得到1/11的可用,后者得到10/11的空间.

在上面的例子中,"10*"没有必要 - "*"会更有意义,因为只有一行使用基于比率的大小调整,因此任何比率都等于可用空间的100%.

  • 非常有用的答案.官方文档的有限示例没有明确声明'*'来表示基于比率的间距. (3认同)

Mar*_*que 22

我发现下面的信息来自Christian Mosers是有用的,因为自动,其他单元格行或列上的固定大小将影响*大小的行为.请参阅http://wpftutorial.net/GridLayout.html


固定 固定尺寸的逻辑单元(1/96英寸)

自动 占用所包含控件所需的空间

星形(*)占用尽可能多的空间(在填充所有自动和固定大小的列之后),按比例划分所有星形大小的列.所以3*/5*表示与30*/50*相同.请记住,如果网格大小是根据其内容计算的,则星号大小不起作用.

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*" />
        <RowDefinition Height="28" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="200" />
    </Grid.ColumnDefinitions>
</Grid>
Run Code Online (Sandbox Code Playgroud)