C# 以编程方式更改windows 7的windows颜色边框

C# 以编程方式更改windows 7的windows颜色边框,c#,windows-7,C#,Windows 7,可能重复: 使用c#在windows 7上运行aero时如何以编程方式更改windows边框颜色?无法单独更改窗口的颜色,但可以通过重新注册在操作系统范围内更改颜色。条目应该是这样的:HKEY\u LOCAL\u MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\Glass Colorization\Swatches与HKEY\u CURRENT\u USER\SOFTWARE\Microsoft\Windows\D

可能重复:


使用c#在windows 7上运行aero时如何以编程方式更改windows边框颜色?

无法单独更改窗口的颜色,但可以通过重新注册在操作系统范围内更改颜色。条目应该是这样的:
HKEY\u LOCAL\u MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\Glass Colorization\Swatches
HKEY\u CURRENT\u USER\SOFTWARE\Microsoft\Windows\DWM-ColorizationColor


在你的代码中,你只能调整你的玻璃边框的形状和大小,但我不认为它的颜色。在这个和中。

这在C#/.NET中是不可能的。WPF/WindowsForms仅允许您更改应用程序内元素的边框。应用程序边框由用户控制。

虽然bitbonk和george正确地指出windows无法更改单个窗口的边框颜色,但您可以查看窗口的所有者。然后,您可能能够实现所需的功能,但是,该窗口很可能不再像“本机”窗口


请参见。心脏:您的注册表方法不会立即更改颜色,需要重新启动桌面窗口管理器服务。 有一个未记录的windows API函数,允许您立即更改Aero主题的颜色。(这也是一个全局更改-适用于所有窗口)

虽然我没有C#代码来做这件事,但是VB.NET应该可以帮助你,因为它们本质上是一样的

<DllImport("dwmapi.dll", EntryPoint:="#127", PreserveSig:=False)> _
Public Shared Sub DwmGetColorizationParameters(ByRef parameters As WDM_COLORIZATION_PARAMS)
End Sub
//this above function GETS the color, and stores it in parameters.
<DllImport("dwmapi.dll", EntryPoint:="#131", PreserveSig:=False)> _
Public Shared Sub DwmSetColorizationParameters(ByRef parameters As WDM_COLORIZATION_PARAMS, ByVal uUnknown As UInteger)
End Sub
//this above function SETS the color, and stores it in parameters.
代码逻辑如下所示:

WDM_COLORIZATION_PARAMS temp = getColor();
temp.Color1 = System.Drawing.Color.FromArgb(alpha,red,green,blue).ToArgb();
temp.Color2 = System.Drawing.Color.FromArgb(alpha,red,green,blue).ToArgb();
setColor(temp);

如何使用reg键更改颜色?你有什么样的代码吗D.如何实施这一点德威尔,快来!您始终可以使用以下命令将C#转换为VB.NET,反之亦然:)
WDM_COLORIZATION_PARAMS temp = getColor();
temp.Color1 = System.Drawing.Color.FromArgb(alpha,red,green,blue).ToArgb();
temp.Color2 = System.Drawing.Color.FromArgb(alpha,red,green,blue).ToArgb();
setColor(temp);