Active TabPage与我的控件具有相同的颜色

问题描述:

我制作了一个TabControl并希望使用一些控件(标签,文本框,按钮和组合框下拉菜单)。问题是,当我选择一个选项卡时,默认背景颜色与控件所使用的窗体的默认背景颜色不同。选项卡和控件的颜色太相似,看起来不太好。Active TabPage与我的控件具有相同的颜色

我看了,但人们似乎认为这是不可能的颜色标签。什么是这个好的解决方案?我是否应该在标签内放置某种框架,标签或其他内容以使背景更暗?

+1

它是一个wpf应用程序或winforms应用程序 – basarat 2010-11-24 09:14:02

这很容易让你的标签页使用相同的背景颜色为您的形式:

  1. 确保要更改的TabPage是在设计可见。点击它来选择它。

  2. 在属性窗口中,找到UseVisualStyleBackColor属性,并将其设置为False

作为奖励,一旦你将此属性设置为False,您可以指定使用其BackColor property要为TabPage任何背景颜色。

这样做的原因是,您迫使标签页不要使用视觉样式(即由Windows定义的主题)进行呈现。实际上,默认主题会将选项卡页面绘制为用于绘制其他3D元素(如窗体和按钮)的颜色的稍浅的阴影。这个问题(特别是Aero主题下)是标准3D元素的颜色已经很轻,标签页几乎看起来是白色的!

如果您对控件与窗体的标准背景颜色的对比感到满意,我建议您只需将UseVisualStyleBackColor属性设置为False,并将其保留在那个位置,而不指定自定义背景颜色。尊重用户的默认主题通常是最佳实践,而不是试图自己为应用程序设置皮肤。

编辑:请注意,这不是变化标签本身的颜色在TabControl的顶部。要做到这一点,您必须将其指定为所有者绘制并处理其事件,迫使您自己完成所有绘画。然而,在大多数情况下,这不是必需的。

+0

谢谢。我现在正在寻找简单的解决方案。所以我将UseVisualStyleBackColor设置为false。我没有做出华丽的应用程序,所以现在解决方案已经足够好了。虽然我同意强制标签不渲染视觉样式并不是很优雅。 – 2010-11-24 09:39:07