2010-08-29 43 views
3

我正在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"/> 

但這是無效

我應該只是寫一個函數來重新佈局界面元素,每當屏幕調整大小時,我覺得這是多餘的......或者有沒有一些簡單的方法來做到這一點,我不知道?任何輸入的歡迎!謝謝!

回答

4

聽起來你只是想用明星大小:

<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

相關問題