2011-11-05 3 views
0

Windows Phone 7.1 응용 프로그램에서 작업 중입니다. UserControl에는 Silverlight 자식 컨트롤이 있습니다. 대부분의 이러한 자식 컨트롤의 글꼴 크기는 UserControl 호스트의 글꼴 크기와 같을 수 있습니다 (어쨌든 호스트에서 상속 받음).UserControl에서 상속 된 FontSize 속성의 값을 가져 오는 방법?

그러나 자식 컨트롤 중 하나에 대해 FontSize를 UserControl의 FontSize의 절반으로 설정하려고합니다. 호스트의 FontSize가 변경되면 업데이트하려고합니다. 하지만 이제는 UserControl 디자인 타임 동안 호스트가 없기 때문에이 작업을 수행 할 수 없습니다. 0.5*FontSize 같은 것을하면 FontSize의 일부 기본값이되며 FontSize가 변경되면 업데이트되지 않습니다.

작동하게하려면 어떻게해야합니까?

답변

2

FontSize 속성을 UserControl의 FontSize 속성에 바인딩하고 비율을 적용하기 위해 변환기를 사용할 수 있습니다. 내가 방법을 구현하여 작업을 얻었다

public class FontSizeConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     var valueToConvert = value == null ? 0 : System.Convert.ToDouble(value); 

     return valueToConvert * 0.5; 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     throw new NotImplementedException("no use"); 
    } 
} 
+0

다음 App.xaml 파일에 리소스로 선언

<TextBlock FontSize="{Binding ElementName=MyPage, Path=FontSize, Converter={StaticResource FontSizeConverter}}" Text="any text" /> 

그리고 컨버터 (: 여기

는 페이지 내의 된 본체와 샘플입니다 네가 제안 했어. 고마워. – bharath

관련 문제