繁体   English   中英

c#更改Windows 10的标题栏颜色

[英]c# Change title bar color for Windows 10

我想像博客文章中那样进行设置。 如何在Windows 10 Universal应用程序的标题栏中应用自定义颜色?

但是此方法适用于通用Windows平台 (UWP)应用程序,而我的项目适用于Windows窗体,该窗体可用于Windows 7和更高版本,但是如果它在Windows 10上运行,我想更改标题栏的颜色。

特定颜色为RGB(R 255,G 141,B 105)。

Windows窗体中没有这样的东西。 基本上,您可以绘制的所有内容都在工作区内部,该工作区是边框和标题栏以外的表单边界。

在此处输入图片说明

边框和标题栏的内容被称为非客户区域, 即使有可能,在其中绘制也并非一件有趣的事情,因为您必须照顾很多东西,例如已激活/已禁用的窗口,鼠标效果和当然,Windows版本特定的东西,例如Aero特效,DWM管理器,视觉特效(是否可用),RDP / Citrix和其他远程/虚拟化渲染设置等。

如果您想进一步了解非客户区域,请查看非客户区域上的Vista Aero ToolStrip

需要警告的是,没有第三方库,您可以很快地完成某件事,但是要做到这一点非常困难,请注意:创建无边界表单( FormBoderStyle=None )并自己处理事情,例如调整大小。 这样,您就可以完全控制表单及其标题。 好处:在非客户区域中绘画时无需PInvokes

缺点是您必须自己调整大小,最小化,最大化和关闭大小。 并且不要小看那件事; 有几种方法可以最大化表单,例如:您可以处理所有表单吗? 因此,单击“最大化”按钮,双击标题栏或将标题栏拖动到屏幕顶部。 这些是您将来必须了解和支持的事情。

也许Windows提供了新的方法,然后您必须重新实现,否则您的用户有一天会责怪您。

网络上有很多方法, 例如这种方法。 我过去曾经尝试过其中的某些功能(例如,Google的“ C#自定义标题栏”为Google)。 他们中的大多数都能正常工作,并且乍看之下不错,但是我从未找到一个100%完整的项目。

另一种方法是-我希望您会选择这种方法-用于第三方库,该库已经通过PInvoke-mud进行了处理,并实现了一些您可以使用的自定义表单。 我认为DevExpress Windows Forms SuiteWindows Forms的最先进的组件套件,但要付出一定的代价。 我也经常使用Krypton Toolkit ,同时它是开源的。 它非常好,经过深思熟虑,但到目前为止还没有提供DevExpress的丰富功能。 还有更多类似TelerikInfragistics的套件。

但是,它们都带有大量您可能根本不需要的功能。 但是它们提供了带有自定义标题栏的漂亮表格(其中大多数可换肤),您可以自己编辑(我不知道这对于Telerik和Infragistics是正确的)。

因此,我的建议是评估您需要具有的功能集以及要为组件支付的功能(如果有)。 然后,您可以决定要去哪个图书馆。 从功能丰富的DevExpress套件到较小的项目(例如Krypton),甚至到个别的项目(例如Material Skin) 后者是一组非常漂亮且独特的控件(和自定义窗体),用于实现Google的Material设计。 这非常酷,但是,如果您打算使用强大的网格和报表来构建业务应用程序,则Material Skin对您来说太苗条。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM