2014-08-27 45 views
2

爲每個用戶控件的大小,默認單位是像素,但它可以很容易地大小設置爲不同的單位,例如:如何比PX不同的單位大小屬性綁定?

<Canvas Height="29.7cm" Width="21cm" /> 

但我應該怎麼做,如果我要綁定這些屬性?我如何保留關於我所需單位的信息?

+2

也許看看描述在這個答案]的方法(http://stackoverflow.com/a/9508847/1834662) – Viv 2014-08-27 13:50:17

回答

0

您可以創建自定義converter其將字符串表示的兩倍(使用LengthConverter):

[ValueConversion(typeof(string), typeof(double))] 
public class SizeConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     double size = (double)new LengthConverter().ConvertFrom(value.ToString()); 
     return size; 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     throw new NotSupportedException("SizeConverter is a oneway converter.") 
    } 
} 

這之後您可以參考該轉換器從你的XAML:

<src:SizeConverter x:Key="sizeConverter"/> 

<Canvas Height="{Binding Path=Height, Converter={StaticResource sizeConverter}}" 
     Width="{Binding Path=Width, Converter={StaticResource sizeConverter}}" /> 

(這裏HeightWidth在你CanvasDataContextstrings可用。)

相關問題