WPF/XAML 将元素的宽度绑定到屏幕尺寸的一部分

2024-02-19

我正在用 C#/WPF 编写一个应用程序,并试图弄清楚如何将网格列定义的宽度数据绑定到屏幕宽度的一小部分。这可能吗?本质上我想要这样的东西:

网格 = 2x2
第 1 行高度 = 屏幕高度的 2/3
第 2 行高度 = 屏幕高度的 1/3
第 1 行宽度 = 屏幕宽度的 2/3
第 2 行宽度 = 屏幕宽度的 1/3

I think这可以正确地将整个宽度绑定到列定义:

<ColumnDefinition Width="{Binding ElementName=Window1, Path=Width}"/>

但我不知道该怎么做是对通过数据绑定获得的值执行操作...这可能吗?我觉得我应该能够将其编码到 XAML 中,而不必以编程方式实现,但我在 UI 设计方面经验很少:( 我想要类似的东西:

<ColumnDefinition Width="{Binding ElementName=Window1, Path=Width} * 2 / 3"/>

但这是无效的

我是否应该编写一个函数来在屏幕大小调整时重新布局 UI 元素?我觉得这是多余的......或者有一些我不知道的简单方法吗?欢迎任何输入!谢谢!


听起来您只想使用星星大小:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="2*"/>
        <RowDefinition Height="1*"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="2*"/>
        <ColumnDefinition Width="1*"/>
    </Grid.ColumnDefinitions>

这将始终给出第一行 2/3 的高度和第二行 1/3 的高度,以及第一列 2/3 的宽度和第二列 1/3 的宽度。它将基于网格的大小,但如果网格是窗口的唯一子级,那么它将与窗口的大小相同。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF/XAML 将元素的宽度绑定到屏幕尺寸的一部分 的相关文章

随机推荐