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

问题描述:

我正在C#/ WPF中编写应用程序,并试图找出如何将网格列定义的宽度数据绑定到屏幕宽度的一小部分。这可能吗?基本上我想是这样的:WPF/XAML将元素的宽度绑定到屏幕大小的一小部分

网格= 2×2
第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"/> 

但这是无效

我应该只是写一个函数来重新布局界面元素,每当屏幕调整大小时,我觉得这是多余的......或者有没有一些简单的方法来做到这一点,我不知道?任何输入的欢迎!谢谢!

听起来你只是想用明星大小:

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

+0

呜!谢谢! – FlyingStreudel 2010-08-29 23:13:04