C# wpf SystemColors не работает правильно

Я пытаюсь окрасить свое окно системными цветами, но когда я делаю это так:

<Menu
    Width="Auto"
    Height="20"
    Background="{DynamicResource {x:Static SystemColors.MenuBarColor}}"/>

Я получаю 8-значный шестнадцатеричный номер. Моя программа принимает только 3 или 6 чисел для цветов. Выполнение программы всегда выдает сообщение об ошибке

System.Windows.Markup.XamlParseException: Zeilennummer "11" und Zeilenposition "4" 
von "Beim Festlegen der Eigenschaft" System.Windows.Controls.Panel.Background 
"wurde eine Ausnahme ausgelöst.". ---> System.ArgumentException: "#FFF0F0F0" ist 
kein gültiger Wert für die Eigenschaft "Background".

если я использую "MenuBarColorKey" вместо этого, это также не будет принято в качестве значения vaild. Но тогда текст гласит: "MenuBarColorKey" не является допустимым значением.... "

Как я могу это исправить?

Спасибо за вашу помощь

Майкл

редактировать: @AwkwardCoder

Извините, читая уже несколько лет, я новичок в записи в stackru, поэтому я не могу комментировать или голосовать.

Вы правы. С кистью это работает. Большое спасибо!

Но я сослался на имена для утилиты из Зака ​​Петерсона, как показано в

"wpf - Как мне использовать правильные системные цвета Windows?"

и там я не нашел расширение "Кисть". И эта утилита работает для меня.

2 ответа

Здесь есть 2 проблемы. Сначала вы хотите использовать Color для Brush собственность и второе вы пытаетесь использовать Color в качестве ключа ресурса.

Если вы хотите использовать его в качестве ресурса, вам нужно использовать SystemColors.MenuBarBrushKey

Background="{DynamicResource {x:Static SystemColors.MenuBarBrushKey}}"

или вы можете использовать его напрямую, а затем вы должны использовать SystemColors.MenuBarBrush

Background="{x:Static SystemColors.MenuBarBrush}"

Вы найдете это SystemColors дает вам 4 статических свойства для каждого цвета

  • XxxxColor дает тебе Color состав
  • XxxxColorKey дает тебе ResourceKey в Color состав
  • XxxxBrush дает тебе SolidColorBrush учебный класс
  • XxxxBrushKey дает тебе ResourceKey в SolidColorBrush учебный класс

Согласно странице MSDN нет MenuBarColor, E сть MenuBarBrush

Другие вопросы по тегам