[英]Get default Windows System Colors in .NET
我正在编写一个自定义Button控件作为(即将成为)免费控件套件的一部分,我想将我的(默认)控件颜色基于相应的Windows系统颜色。 因此,在线查找“默认的Windows系统颜色”后,我无法找到有关Windows控件的系统颜色(特别是不是按钮控件)的信息。
有没有办法在.NET中获取此颜色信息(例如按钮边框颜色,按钮突出显示颜色,按钮悬停颜色,按钮单击背景颜色等)?
您还可以使用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)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.