.NET框架包含定义所谓“系统颜色”的类。对于WinForms,它是System.Drawing.SystemColors,对于WP *,它是System.Windows.SystemColors。我有两个问题:
SystemColors
?如果颜色确实可以改变,并且我想保持应用程序的相同外观,无论用户配置的颜色和操作系统版本我假设我不能使用SystemColors
而是创建我自己的颜色配置和使用在整个代码中,是吗?
答案 0 :(得分:7)
1)不,使用不同版本的Windows更改了默认颜色。只需将XP与Win10进行比较,您就会发现着色非常不同。
2)是的,用户可以通过“控制面板\外观和个性化\个性化”进行配置。
没有任何东西会迫使您在应用内部使用系统颜色,因此如果您不引用它们,它将不会影响您应用内的任何内容。但它仍会影响窗口的镀铬部分(即边框等)
答案 1 :(得分:3)
如果您查看KnownColorTable.cs
源代码,您将看到该类使用Windows API GetSysColor
函数获取颜色,该函数根据操作系统/用户配置返回颜色。
以下是您的问题的答案:
不,他们不一样。它们是OS /用户级别的配置。每个Windows主题都以不同方式指定系统颜色。您可以自己调整系统颜色以创建自己的Windows主题
是的,您可以使用SetSysColors
方法以编程方式更改它们。此功能仅更改当前会话的颜色。要保留更改,您必须在excelSheet.get_Range("A" + lineBreakAreaTop, "J" + lineBreakAreaBottom).WrapText = true;
更新注册表项。
其他资源:
SetSysColors
页面。该页面包含使用此方法设置颜色并使用注册表的示例。答案 2 :(得分:2)
系统颜色确实可由用户更改。
例如,在Windows 10上,您可以选择“控制面板”中的“个性化”选项进行修改。
因此,要回答您的具体问题
没有默认值,因为Windows附带了多个可在安装时选择的主题。
颜色是可配置的,用户可以全局更改颜色。