【问题标题】:What does RowDefinition Height="10*" mean in a XAML Grid?XAML 网格中的 RowDefinition Height="10*" 是什么意思?
【发布时间】:2009-07-22 09:50:31
【问题描述】:

我用 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>

【问题讨论】:

    标签: wpf xaml grid


    【解决方案1】:

    "*""1*" 的简写。这是一个比例,所以如果你有两行,一排是"*",另一排是"10*",前者占可用空间的1/11,后者占空间的10/11。

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

    【讨论】:

    • 非常有帮助的答案。官方文档的有限示例没有明确声明“*”来表示基于比率的间距。
    • @ford 可以,但您需要将版本更改为 silverlight [link]msdn.microsoft.com/en-us/library/…
    【解决方案2】:

    我发现以下来自 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-17
      • 1970-01-01
      • 2012-02-16
      • 2011-10-20
      • 1970-01-01
      • 2012-06-24
      • 1970-01-01
      • 2011-10-09
      相关资源
      最近更新 更多