如何在WPF中为黑暗模式获得黑色标题栏

时间:2019-12-02 15:21:30

标签: c# wpf

我有一个WPF应用程序。我阅读(并观察)了注册表项HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize\AppsUseLightTheme,以查看暗模式是否(以及何时)处于活动状态或非活动状态。然后我会使用WPF主题使应用程序变暗或变亮。

无论如何,我没有找到更改标题栏的方法。一定有办法,因为打开“暗模式”时,Windows资源管理器也会获得一个暗标题栏。我不知道其他具有此功能的应用程序。

我知道CMD窗口在“黑暗”模式下也会出现黑色标题栏,但我认为这是不同的,因为控制台窗口仍然很特殊。

那么,如何告诉Windows我的应用程序支持或处于暗模式,以使标题栏变为黑色?

2 个答案:

答案 0 :(得分:0)

WPF具有带有所有主题颜色(或多或少)的SystemColors静态类,请在DynamicResource上使用它。

如果您需要更多工作(但需要更多控制权),请找到“ AccentColors P / Invoke”。

如果您想更改“标题栏”的颜色,则需要查找窗口的“ Chrome”。

https://docs.microsoft.com/en-us/dotnet/api/system.windows.shell.windowchrome?view=netframework-4.8

答案 1 :(得分:0)

您的WPF应用程序中不能包含深色模式标题栏。具有深色模式支持的标题栏适用于UWP应用。对于您的WPF应用,您将必须使用 WindowStyle =“ None” 并创建自己的标题栏。

这是与此有关的有趣读物: https://engy.us/blog/2018/10/20/dark-theme-in-wpf/