2016-11-15 147 views
0

我正在尝试主题我的WPF应用程序看起来像一个正常的桌面应用程序。WPF系统主题颜色

我见过其他问题,基本上回答同样的问题,但解决方案似乎不适合我。假设我的菜单栏的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

你有一个地铁/ UWP或Win32的应用程序? – Lennart

+0

什么?标准的WPF应用程序是一个桌面应用程序。为什么它看起来不同于默认主题? – Clemens

+0

我正试图实现默认的主题颜色。每个其他桌面应用程序都有一个白色的菜单栏,但是当我使用此代码时(并且当我根本不指定“背景”时),我的菜单栏是灰色的。我不想让菜单栏显式变白,因为这不适应用户主题的变化。 – Zac

回答

-1

您需要一个SystemColors类。这是一个很好的文章:SystemColors Reference。有一个很好的阅读:)

+0

我的问题明确表明我使用'SystemColors',并强调我没有获得与其他桌面应用程序一致的菜单栏颜色。 – Zac

0

WPF是一个非常可定制的用户界面框架。默认情况下,它并不是真正的“主题”,默认看起来很糟糕(意见),但你可以自由创建任何你想调整应用程序外观和风格的样式。

您需要为您的应用程序自己创建样式化控件,使用已创建的一些样式或在UI样式框架之上构建。

Windows 7 theme for WPF?

含有大量的免费主题的CodePlex: http://wpfthemes.codeplex.com/

或者,你可以建立一个造型/主题化框架的顶部。一个我以前使用过的建议是MahApps Metro - 它是一个工具包,可以用来制作地铁风格的应用程序,默认样式看起来非常棒,并且有很多已经改进/定制的controls。您可以轻松覆盖该库中的样式以创建自己的外观。它还使用了两种基本配色方案,可在整个应用程序中实现非常一致和可定制的感觉。还有其他的框架,但我发现的框架主要是针对'Metro'主题。

Modern UI for WPF

Elysium