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

时间:2010-11-24 09:04:20

标签: c# .net winforms tabcontrol tabpage

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

我看过,但人们似乎都说不可能给标签着色。这有什么好的解决方案?我应该在标签内放置某种框架,标签或其他东西以使背景更暗吗?

1 个答案:

答案 0 :(得分:1)

很容易让标签页使用与表单相同的背景颜色:

  1. 确保设计器中显示您要更改的TabPage。点击它选择它。

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

  3. 作为奖励,一旦您将此属性设置为False,您就可以使用BackColor propertyTabPage指定所需的任何背景颜色。

    这样做的原因是你强迫标签页不用视觉样式(即Windows定义的主题)呈现。默认主题实际上将标签页绘制为用于绘制其他3D元素(如表单和按钮)的颜色稍微浅一些。问题(特别是在Aero主题下)是标准3D元素的颜色很浅,标签页几乎看起来是白色的!

    如果您对控件与表单标准背景颜色的对比度感到满意,我建议您只需将UseVisualStyleBackColor属性设置为False,并将其保留为该属性而不指定自定义背景颜色。尊重用户的默认主题通常是最佳做法,而不是尝试自己设置应用程序。

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