【发布时间】:2014-09-01 10:19:08
【问题描述】:
我正在编写一个自定义 Button 控件,作为(即将推出的)免费控件套件的一部分,并且我希望将我的(默认)控件颜色基于相应的 Windows 系统颜色。因此,在线查找“默认 Windows 系统颜色”后,我找不到有关 Windows 控件(尤其是按钮控件)的系统颜色的信息。
有没有办法在 .NET 中获取此颜色信息(例如按钮边框颜色、按钮突出显示颜色、按钮悬停颜色、按钮单击背景颜色等)?
【问题讨论】:
-
查看
SystemColors类中的属性 -
请注意,
SystemColors主要对应于“经典 Windows”外观中看到的颜色元素 - 自 Windows 8 起已停止使用。另请注意,没有直接的方法可以获取当前的 Aero Glass / Window Color没有 P/Invoke 的 .NET Framework。我认为当前的时尚趋势是不允许用户以这种方式自定义他们的环境。 -
@Dai:我完全同意(我眼里含着泪水),“当前的时尚趋势是不允许用户自定义他们的环境”——这应该格式化为粗体!
-
我应该注意到:我已经检查了
SystemColors类,但我认为它不完整。也许我错了,但我没有看到任何按钮颜色等。 -
您使用的是 WPF 还是 WinForms ?如果它是 WPF,您可以看到使用的
SystemColors,如果您正在创建 DefaultTemplate,则背景属性例如按钮具有ControlBrushKey。它对 WinForms 知之甚少,但我认为等价于 SystemColors 类中的Control