2014-12-12 3 views
0

У меня есть конвертер, который возвращает кисть, чтобы установить фон элемента управления на мой взгляд. Однако, когда я возвращаю SystemColors.XXX, он не работает, однако, когда я использую Brush, он работает, поэтому я думаю, что мне нужно преобразовать SystemColors в Brush.как преобразовать SystemColors в кисть?

Как я могу это сделать? Потому что я попытался это:

return (Brush)System.Windows.SystemColors.HighlightTextBrush; 

В ресурсах управления я поставил этот:

<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="Transparent"/> 
       <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/> 
       <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black"/> 
       <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightTextBrushKey}" Color="Black"/> 

Я использую прозрачный, потому что на фоне ряда обратит их мульти значения конвертер.

спасибо.

+0

Я не вижу причин, по которым возвращение 'SystemColors.HighlightTextBrush' не должно работать в вашем конвертере. Но вы никогда не размещали код, где он вызван. Пожалуйста, разместите свой код, здесь, в SO, мы довольно плохо читаем мысли людей по TCP/IP. – nvoigt

ответ

1

Вам нужно создать свой собственный конвертер

public class ColorToSolidColorBrushValueConverter : IValueConverter { 

     public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { 
      return new SolidColorBrush((Color)value); 
     } 

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

Объявить его в разрезе ресурсов, чтобы использовать его.

<local:ColorToSolidColorBrushValueConverter x:Key="ColorToSolidColorBrushValueConverter"/> 

И использовать его в привязке как статический ресурс.

Fill="{Binding Path=xyz,Converter={StaticResource ColorToSolidColorBrush_ValueConverter}}"