【问题标题】:Change the color of the taskbar更改任务栏的颜色
【发布时间】:2016-09-12 15:06:08
【问题描述】:

我有一个客户端-服务器窗口窗体应用程序,我需要在屏幕的角落制作一个边框,以便直观地了解我连接到哪个服务器。我搜索了很多但一无所获,所以我想每次服务器是客户端的目标时更改taskbar 的颜色。 但我不知道如何从 Visual Studio(c#) 获得任务栏的控制权。 有什么想法吗?

我尝试使用:

[DllImport("dwmapi.dll", PreserveSig = false)]

【问题讨论】:

标签: c# winforms windows-10 taskbar


【解决方案1】:

要改变整个任务栏的颜色(我假设你说的是windows 7或更高版本),你必须改变windows的视觉主题颜色,比如可以通过控制面板->个性化来完成->颜色和外观。

我认为任务栏的颜色与应用程序没有任何关联,它是系统范围的设置(或更准确地说,是用户范围的)。

我相信这就是您所追求的,如何更改 Windows 颜色主题/方案。

为此,我想你要使用WIN32API调用SetSystemVisualStyle(uxtheme.dll)

您可能设置了系统主题颜色,但它可能看起来很浅,以至于很难分辨它是否发生了变化。如果窗口样式是“Aero Glass”而不是“Aero Basic”,则可能会发生这种情况。在此 stackoverflow 问题的第二个答案中讨论了更改 THAT 的 WIN32API 调用:How to change windows color scheme using c#?

对于旧版本的 Windows,(我认为)或者如果上述 API 调用不适合您,您可以尝试 WIN32API 调用:SetWindowTheme (uxtheme.dll)

我注意到在您的问题中,您提到了 dwmapi.dll。查看pinvoke.net,我注意到一些相关的WIN32API 调用,即 DwmSetColorizationParameters (dwmapi.dll) 听起来确实可以改变单个窗口的 Aero 主题颜色,以及窗口的透明度。但是,根据我的阅读,这可能在较新/ist 版本的 windows 中不受支持,但据称它可以创建从一种颜色到另一种颜色的平滑过渡。有关详细信息,请在此处查看此代码项目:Changing Windows Aero Color

如果这对你有用,请告诉我,我很想知道这是否解决了你的问题。

【讨论】:

    【解决方案2】:

    multipleanswers 中所见,您无法更改任务栏颜色。但是,您可以根据上下文更改应用程序图标(也许每个服务器一个图标)

    【讨论】:

    • 是的,很多 Windows 程序都可以做到。橙色闪烁,橙色静止,红色,黄色,绿色进度,绿色静止......我在任务栏按钮上看到了很多颜色。要是我能找到方法就好了。
    猜你喜欢
    • 2016-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多