2016-09-27 2 views
0

사용자가 올바른 내용을 표시 할 수 있도록 클릭 한 마지막 단추를 강조 표시하려면 어떻게해야합니까? (다른 버튼을 클릭 할 때까지 특정 내용에 대해 강조 표시된 버튼이 하나 있습니다.)마지막 리본 메뉴 강조 표시

리본 (System.Windows.Controls.Ribbon)입니다. 강조 표시 할 버튼은 RibbonGroup 내부에 유지되며 주요 내용을 변경하기위한 것입니다.

다른 버튼이 정상적으로 작동해야

은 내가 사용하는 Model-View-ViewModel 패턴

<Ribbon DockPanel.Dock="top"> 
      <RibbonTab Header="Home"> 
       <RibbonGroup Header="Process Flow"> 
        <StackPanel Orientation="Horizontal"> 
         <RibbonButton Label="Style change" LargeImageSource="pack://application:,,,/Resources/StyleChange.png"></RibbonButton> 
         <RibbonButton Label="Settings" Command="{Binding ChangeToSettingContentCommand}" LargeImageSource="pack://application:,,,/Resources/Settings.png"></RibbonButton> 
         <RibbonButton Label="Firmware changes" LargeImageSource="pack://application:,,,/Resources/Code.png"></RibbonButton> 
         <RibbonButton x:Name="testsButton" Label="Tests" Command="{Binding ChangeToTestContentCommand}" LargeImageSource="pack://application:,,,/Resources/test.png"></RibbonButton> 
        </StackPanel> 
       </RibbonGroup> 

답변

0

내가 바인딩하여 해결했습니다 (내가 클릭 한 후 강조 버튼의 수를 제한하고 싶습니다) HighLightSettingButton 속성과 BorderBrush

<RibbonButton Label="Settings" BorderBrush="{Binding HighLightSettingButton, Converter={StaticResource brs}}" Command="{Binding ChangeToSettingContentCommand}" LargeImageSource="pack://application:,,,/Resources/Settings.png"></RibbonButton 

및 테두리 브러쉬의 구현

public class BrushColorConverter : IValueConverter 
    { 

     public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { 
     if ((bool)value == true) { 
      return new SolidColorBrush(Colors.Orange);     
      //return (SolidColorBrush)(new BrushConverter().ConvertFrom("#FFFFEBAA")); 
     } else 
     return null; 
    } 

     public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { 
     throw new NotImplementedException(); 
    } 

}