微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在.NET中获取默认的Windows系统颜色

我正在编写一个自定义Button控件作为(即将)免费的控制套件的一部分,我想将我的(认)控件颜色基于相应的Windows系统颜色。 所以,在网上查找“认Windows系统颜色”后,我无法find有关Windows控件的系统颜色(特别是不是button控件)的信息。

有没有办法获得这种颜色信息(例如button边框颜色,button高亮颜色,buttonhover颜色,button点击的背景颜色等)在.NET中?

Windows如何区分常规EXE和.NET EXE?

列出并连接到蓝牙设备

读取和写入一个文件,而不是一个小块的磁盘一次的缺点?

如何使用PHP将.NET源文件编译为可执行文件

在我的WPF项目安装程序中,如何捆绑.NET3.5安装程序?

是。 事实上,有一整堂课都是为了这个:

SystemColors类 。

…或为WPF(谢谢@ORMapper), System.Windows.SystemColors类 。

一个系统颜色类,它将为您提供颜色。

对于WinForms使用:

System.Drawing.SystemColors

对于WPF使用:

System.Windows.SystemColors

你也可以使用GetSysColor函数的 api函数

瓦尔特

您可以使用Win API, GetSysColor函数

[DllImport("user32.dll",CharSet=CharSet.Auto)] public static extern int GetSysColor(int nIndex);

函数返回给定元素的红色,绿色,蓝色(RGB)颜色值。

显示RGB值的组件,请使用GetRValue,GetGValue和GetBValue宏。

单色显示器的系统颜色通常被解释为灰色阴影。

要使用系统颜色笔刷绘画,应用程序应该使用GetSysColorBrush(nIndex)而不是CreateSolidBrush(GetSysColor(nIndex)),因为GetSysColorBrush返回一个缓存刷,而不是分配一个新的。

我想要同样的事情。 我的方法是在初始化时创建一个临时窗口,其背景颜色为GetSysColor(COLOR_BTNFACE)中指定的对话框的“标准”背景颜色。 然后,我创建一个没有文字的按钮,并获取颜色。 这个临时窗口从不显示,并立即销毁(WM_CREATE退出代码= -1)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐