设计WinForms UI时要尊重XP主题

时间:2020-03-06 14:56:05  来源:igfitidea点击:

在设计WinForms UI时如何处理不同的XP主题?我们是否避免使用硬编码的颜色值,或者只是接受UI在非标准主题上看起来效果不佳?

例如,我有一个浅蓝色渐变面板,在标准控件的背景色下看起来不错,但会与其他自定义主题发生冲突。有什么好的方法?

解决方案

避免使用十六进制颜色和诸如"白色"或者"绿色"之类的颜色。大多数对象的颜色选择器应该能够为我们显示诸如" ActiveWindow"或者" ForegroundText"之类的颜色。这些是我们要使用的颜色。它们也可以通过代码获得,并且我们想要选择它们,以便名称与它们的使用方式有某种关系。例如,不要仅仅因为需要黑色背景就将" ForegroundText"设置为背景色。如果我们有渐变,请使用这些颜色构建渐变。另外,当主题更改时,我们可能需要处理一个事件。

那是如果我们选择尊重主题。如果我们确实有一个室外接口,那么我们可能需要指定自己的颜色。在这种情况下,请不要使用Windows的颜色,因为它们将不可靠,并且我们最终可能会遇到一些丑陋的事情。这意味着我们需要去改变标准控件中的所有默认值,但是如果我们这样做的话,我们可能仍然拥有自己的控件。

总而言之,要记住的是拍摄的是全有还是全无:尊重主题并始终使用基于Windows小部件元素定义的颜色,或者不使用主题并且根本不使用这些颜色。