2011-12-01 3 views
1

Silverlight에서 토글 단추 컨트롤을 사용하고 있습니다. Checked 및 Unchecked 상태에서 다른 글꼴 모음을 사용하는 방법을 알려주십시오. Expression Blend를 사용하여 Toggle 버튼 템플릿을 편집 해 보았지만 작동하지 못했습니다. 도와주세요.다른 단추 상태에 대한 다른 글꼴

감사합니다, 오메르 자 베드

답변

0

당신은 변환기를 사용하여 버튼의 IsChecked 상태로 버튼 내부의 TextBlock의의의 font 속성을 바인딩 할 수 있습니다.

<ToggleButton 
    x:Name="tb"> 
    <ToggleButton.Resources> 
     <converters:BooleanToFontFamily 
      x:Key="BooleanToFontFamily" /> 
    </ToggleButton.Resources> 
    <TextBlock 
     FontFamily="{Binding IsChecked, ElementName='tb', Converter={StaticResource BooleanToFontFamily}, ConverterParameter='Segoe WP Semibold,Segoe WP SemiLight'}" 
     Text="Some Text" /> 
</ToggleButton> 

그리고 C#에서 컨버터는 다음과 같이 rouguhly 보일 것이다

public class BooleanToFontFamily : IValueConverter 
{ 
    public object Convert(
     object value, 
     Type targetType, 
     object parameter, 
     CultureInfo culture) 
    { 
     var b = (bool)value; 
     var families = ((string)parameter).Split(','); 
     return new FontFamily(b ? families[1] : families[0]); 
    } 

    public object ConvertBack(
     object value, 
     Type targetType, 
     object parameter, 
     CultureInfo culture) 
    { 
     throw new NotSupportedException(); 
    } 
} 

개인적으로 비록 - 아마 뭔가 VisualStateManager가로의 전환을 처리와 함께 할 - 나는 일을 해당 템플릿을 얻으려고 했을까 "확인 됨"상태.

0

쉬운 방법은 내장 된 behaivor ChangePropertyAction을 사용하는 것입니다. Expression Blend가 설치되어 있다고 언급 했으므로 Asset Panel로 가서 'ChangePropertyAction'을 입력 한 다음이 동작을 ToggleButton 위에 드래그 앤 드롭하십시오.

어떤 이벤트가 발생하면 을 지정해야합니다. 변경하려면을 변경하십시오. 이 동작을 사용하는 방법에 대한 자세한 내용은 this post을 참조하십시오.

일부 예제 코드

<ToggleButton Content="ToggleButton" FontFamily="Arial" HorizontalAlignment="Center" VerticalAlignment="Center"> 
     <i:Interaction.Triggers> 
      <i:EventTrigger EventName="Checked"> 
       <ei:ChangePropertyAction PropertyName="FontFamily"> 
        <ei:ChangePropertyAction.Value> 
         <FontFamily>Arial Black</FontFamily> 
        </ei:ChangePropertyAction.Value> 
       </ei:ChangePropertyAction> 
      </i:EventTrigger> 
      <i:EventTrigger EventName="Unchecked"> 
       <ei:ChangePropertyAction PropertyName="FontFamily"> 
        <ei:ChangePropertyAction.Value> 
         <FontFamily>Arial</FontFamily> 
        </ei:ChangePropertyAction.Value> 
       </ei:ChangePropertyAction> 
      </i:EventTrigger> 
     </i:Interaction.Triggers> 
    </ToggleButton> 
관련 문제