XAML 中 * 的含义是什么

发布于 2024-12-04 11:30:14 字数 453 浏览 2 评论 0原文

XAML 中 * 的含义是什么?我有一个宽度为400的网格。并将网格分为3列。 *.4 是什么意思?我认为这是可用空间的 40%。所以我认为前两列各占 40%,其余部分由第三列占据。 但看起来,第三列占 60%,前两列各占 20%。 这是如何运作的?

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width=".4*"/>
        <ColumnDefinition Width=".4*"/>
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
</Grid>

在此处输入图像描述

What does * mean in XAML. I have a grid of width 400. And divided the grid to 3 columns.
What does *.4 mean? I thought it is 40% of the space available. so thought the first 2 columns will get 40% percent each and the rest is taken by the third column.
but looks like, the third column is taking 60% and the first two are getting 20% each.
How does this work?

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width=".4*"/>
        <ColumnDefinition Width=".4*"/>
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
</Grid>

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

东走西顾 2024-12-11 11:30:14

基本上,默认值为“1*”,因此上面的内容实际上是:

<Grid.ColumnDefinitions>
    <ColumnDefinition Width="0.4*" />
    <ColumnDefinition Width="0.4*" />
    <ColumnDefinition Width="1.0*" />
</Grid.ColumnDefinitions>

星形网格间距(GridUnitType.Star) 按比例分配空间。在您的例子中,总共有 1.8 (1.0 + 0.4 + 0.4),因此前两列各获得分配给它们的宽度的 22.2% (0.4/1.8)。

为了得到你想要的,你可以使用:

<Grid.ColumnDefinitions>
    <ColumnDefinition Width="0.4*" />
    <ColumnDefinition Width="0.4*" />
    <ColumnDefinition Width="0.2*" />
</Grid.ColumnDefinitions>

这将总数设置为 1.0,所以每个都变成一个百分比。

请注意,这将得到与以下操作完全相同的结果:

<Grid.ColumnDefinitions>
    <ColumnDefinition Width="40*" />
    <ColumnDefinition Width="40*" />
    <ColumnDefinition Width="20*" />
</Grid.ColumnDefinitions>

由于现在将总比例除以总数 (100),仍然给出 40%、40%、20%。

Basically, the default is "1*", so what you have above is effectively:

<Grid.ColumnDefinitions>
    <ColumnDefinition Width="0.4*" />
    <ColumnDefinition Width="0.4*" />
    <ColumnDefinition Width="1.0*" />
</Grid.ColumnDefinitions>

The Star grid spacing (GridUnitType.Star) proportionally distributes space. In your case, you have a total of 1.8 (1.0 + 0.4 + 0.4), so the first two columns each get 22.2% (0.4/1.8) of the width allocated to them.

To get what you want, you can use:

<Grid.ColumnDefinitions>
    <ColumnDefinition Width="0.4*" />
    <ColumnDefinition Width="0.4*" />
    <ColumnDefinition Width="0.2*" />
</Grid.ColumnDefinitions>

This sets the total to 1.0, so each becomes a percentage.

Note that this will give exactly the same result as doing:

<Grid.ColumnDefinitions>
    <ColumnDefinition Width="40*" />
    <ColumnDefinition Width="40*" />
    <ColumnDefinition Width="20*" />
</Grid.ColumnDefinitions>

Since the total proportions are divided up by the total (100) now, still giving 40%, 40%, 20%.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文