2016-09-27 67 views
0

如何高亮顯示上次點擊的按鈕,以便用戶確保顯示正確的內容? (我想有1個按鈕突出顯示特定內容,直到另一個被點擊)。高亮顯示最後一個RibbonButton

我正在使用功能區(System.Windows.Controls.Ribbon)。 應該突出顯示的按鈕位於RibbonGroup內部,它們用於更改主要內容。

其他按鈕應該表現一般(我想限制被點擊之後高亮顯示的按鈕數)

我使用模型 - 視圖 - 視圖模型模式

<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(); 
    } 

}