WPF技术问题:如何在C#中正确使用系统颜色(SystemColor)
获取按钮悬停状态的系统正确颜色
SystemColors.Highlight对应的是系统选中内容的高亮背景色(比如列表、下拉框选中项的颜色),和按钮悬停时的淡蓝色不是同一个系统颜色,所以你拿到的颜色不对。- 根据你使用的UI框架,选择对应的系统颜色属性:
- WinForms 环境:使用
SystemColors.ControlHighlight,这是系统定义的控件悬停高亮色,代码示例:byte r = SystemColors.ControlHighlight.R; byte g = SystemColors.ControlHighlight.G; byte b = SystemColors.ControlHighlight.B; - WPF 环境:可以通过
SystemColors.ControlHighlightBrush获取对应的颜色,代码示例:var hoverColor = SystemColors.ControlHighlightBrush.Color; byte r = hoverColor.R; byte g = hoverColor.G; byte b = hoverColor.B;
- WinForms 环境:使用
- 如果是适配Win11等现代系统主题,上述系统颜色属性会自动跟随系统主题变化,保证和系统原生按钮悬停色一致。
内容的提问来源于stack exchange,提问作者Ryan Daley
相关产品推荐
相关产品推荐

