2011-11-24 38 views
2

我知道,在WPF中,您可以用不同的單位指定控件的高度。將控件的高度綁定到單位特定的度量值

例如:

<Setter Property="Height" Value="0.35cm"></Setter> 

我想一個控件的高度綁定到我的視圖模型的屬性。如何在使用綁定時指定高度以釐米爲單位?我試圖在視圖模型的高度屬性設置爲一個字符串和追加「釐米」高度測量背後:

視圖模型在XAML創建如下:

<local:HeadingViewModel Height="0.35cm"></local:HeadingViewModel> 

控制的高度爲通過裝訂風格設置:

<Setter Property="Height" Value="{Binding Height, RelativeSource={RelativeSource Mode=TemplatedParent}}"></Setter> 

這設置的高度,但它不是以釐米爲單位。它似乎被設置爲WPF的默認單位。當我將高度從「0.35cm」更改爲「0.35in」時,沒有任何反應。它似乎留在WPF的默認單位。

如何在不同的測量單位中通過綁定設置控件的高度屬性而不是默認單位?

回答

1

在WPF中並沒有真正使用不同單元進行綁定的概念 - 它們都是TypeConverter-LengthConverter - 它將XAML提供的字符串轉換爲double。根據您輸入的單位,它將結果乘以某個因子。

所以,如果你想綁定到一個double,你必須確保你將代碼中的double轉換成1/94英寸的WPF單位。或者你可以讓IValueConverter爲你做。

如果你想綁定到一個字符串,你可以寫一個IValueConverter並從內部調用LengthConverter

相關問題