2016-11-15 2 views
0

Я пытаюсь использовать тему своего приложения WPF, чтобы выглядеть ... обычным настольным приложением.WPF System Theme Colors

Я видел ответы на другие вопросы, прося в основном то же самое, но решение, похоже, не работает для меня. Предположим, что моя строка меню определяется в XAML следующим образом:

<DockPanel> 
    <Menu DockPanel.Dock="Top" 
      Background="{DynamicResource {x:Static SystemColors.MenuBarBrushKey}}" /> 
</DockPanel> 

(В действительности он также содержит MenuItem записи и т.д.) Запуск его на Windows 10 --- без каких-либо изменений по сравнению с темой по умолчанию --- Моя панель меню - сероватый цвет # f0f0f0. Если я запускаю другие приложения (например, Notepad, Notepad ++, Evernote, Maple, Snipping Tool и т. Д.), Панель меню белая: #ffffff.

Может ли кто-нибудь указать мне правильное направление для правильного использования системных цветов Windows?

+0

У вас есть приложение Metro/UWP или Win32? – Lennart

+0

Что? Стандартное приложение WPF представляет собой настольное приложение. Почему он должен выглядеть иначе, чем тема по умолчанию? – Clemens

+0

Я пытаюсь достичь цвета темы по умолчанию. У каждого другого настольного приложения есть белая панель меню, но когда я использую этот код (и когда я вообще не указываю 'Background'), моя строка меню серая. Я не хочу, чтобы строка меню была явно белой, потому что она не адаптируется к изменениям пользовательской темы. – Zac

ответ

-1

Вам нужен класс SystemColors. И хорошая статья его использования: SystemColors Reference. Хорошее чтение :)

+0

Мой вопрос явно показывает мне использование 'SystemColors', и я подчеркиваю, что я не получаю цвета в строке меню, совместимые с другими настольными приложениями. – Zac

0

WPF - это очень настраиваемый интерфейс пользовательского интерфейса. По умолчанию это действительно не «тематический», а по умолчанию выглядит довольно плохо (мнение), но вы можете создавать любые стили, которые вы хотите настроить внешний вид вашего приложения.

Вам нужно либо создать стилизованные элементы управления для своего приложения самостоятельно, либо использовать уже созданные стили или создать поверх структуры стилей пользовательского интерфейса.

Windows 7 theme for WPF?

CodePlex, содержащий много бесплатных тем: http://wpfthemes.codeplex.com/

В качестве альтернативы, вы можете построить на вершине основы для укладки/тематизации. Один из них, который я использовал раньше и порекомендовал, это MahApps Metro - это набор инструментов, который можно использовать для создания приложений в стиле метро, ​​стили по умолчанию выглядят довольно устрашающе, и есть много уже обновленных/настраиваемых controls. Вы можете легко переопределить стили из этой библиотеки, чтобы создать свой собственный внешний вид. Он также использует две базовые цветовые схемы, которые используются повсеместно, что обеспечивает очень последовательное и настраиваемое ощущение во всем приложении. Существуют альтернативные рамки, но те, которые я нашел, в основном предназначены для тем «Метро».

Modern UI for WPF

Elysium