我正在编写一个自定义Button控件作为(即将)免费的控制套件的一部分,我想将我的(默认)控件颜色基于相应的Windows系统颜色。 所以,在网上查找“默认Windows系统颜色”后,我无法find有关Windows控件的系统颜色(特别是不是button控件)的信息。
有没有办法获得这种颜色信息(例如button边框颜色,button高亮颜色,buttonhover颜色,button点击的背景颜色等)在.NET中?
Windows如何区分常规EXE和.NET EXE?
列出并连接到蓝牙设备
在我的WPF项目安装程序中,如何捆绑.NET3.5安装程序?
是。 事实上,有一整堂课都是为了这个:
SystemColors类 。
…或为WPF(谢谢@ORMapper), System.Windows.SystemColors类 。
有一个系统颜色类,它将为您提供颜色。
对于WinForms使用:
对于WPF使用:
瓦尔特
您可以使用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] 举报,一经查实,本站将立刻删除。