2014-08-27 8 views
2

의 기본 단위는 픽셀이지만, 예를 들어, 쉽게 다른 장치에 크기를 설정할 수 있습니다 :크기 속성을 px와 다른 단위로 바인딩하는 방법은 무엇입니까? 모든 사용자 컨트롤의 크기

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

하지만이 바인딩하려면 어떻게해야합니까 속성? 원하는 유닛에 대한 정보를 어떻게 보관합니까?

[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}}" /> 

을 (여기 Height

+2

어쩌면 [이 답변] (http://stackoverflow.com/a/9508847/1834662)에 설명 된 접근법을 살펴보십시오. – Viv

답변

0

당신은 (LengthConverter를 사용하여) 문자열 표현이 두 배로 변환하는 사용자 정의 converter를 만들 수 있습니다 및 WidthCanvasDataContext에서 사용 가능한 strings입니다.