代码之家  ›  专栏  ›  技术社区  ›  FlyingStreudel

wpf/xaml将元素的宽度绑定到屏幕大小的一小部分

  •  3
  • FlyingStreudel  · 技术社区  · 15 年前

    我正在用c/wpf编写一个应用程序,并试图找出如何将网格列定义的宽度数据绑定到屏幕宽度的一部分。这有可能吗?基本上我想要这样的东西:

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

    认为 这样可以正确地将全宽绑定到列定义:

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

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

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

    但那是无效的

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

    1 回复  |  直到 11 年前
        1
  •  4
  •   Quartermeister    15 年前

    听起来你只是想用星型尺寸:

    <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。它将基于网格的大小,但是如果网格是窗口的唯一子级,那么它将与窗口的大小相同。

    推荐文章