C# 透明选项卡控件显示为白色

C# 透明选项卡控件显示为白色,c#,winforms,C#,Winforms,无论如何,我在选项卡控制方面有点困难。当我将一个新的选项卡控件拖到窗体上时,它显示为白色,而不是我所期望的灰色(系统颜色) 当我查看属性时,它的颜色设置为web透明。好的,那么它应该是透明的(它不会让它背后的任何东西显示出来)。手动将tab control back Color设置回系统灰色是可行的,但顶部的选项卡仍显示为白色。我假设我也可以以某种方式改变它们的颜色,但我很快就进入了从默认值更改这么多值的领域,我显然遗漏了一些东西。我尽可能地搜索了各种各样的“透明选项卡控件绘制白色”,虽然我发现

无论如何,我在选项卡控制方面有点困难。当我将一个新的选项卡控件拖到窗体上时,它显示为白色,而不是我所期望的灰色(系统颜色)

当我查看属性时,它的颜色设置为web透明。好的,那么它应该是透明的(它不会让它背后的任何东西显示出来)。手动将tab control back Color设置回系统灰色是可行的,但顶部的选项卡仍显示为白色。我假设我也可以以某种方式改变它们的颜色,但我很快就进入了从默认值更改这么多值的领域,我显然遗漏了一些东西。我尽可能地搜索了各种各样的“透明选项卡控件绘制白色”,虽然我发现与windows配置文件有关,但这似乎主要局限于使用access中的vb访问access 2003

我正在寻找关于以下方面的任何解释:

  • 我需要做什么才能正确使用选项卡控件的透明度
  • 我对选项卡控件中透明度的目的理解有误
  • 如何轻松地将选项卡控件相应部分的所有颜色更改为不透明

我正在查看windows窗体中的MCTS,所以请不要给出“您应该使用X”类型的答案。

不,变白当然是正常的。启用视觉样式时,TabControl和TabPage使用主题颜色呈现。因此,在具有标准Windows主题的计算机上,选项卡页面将变为白色

是的,透明的默认背景色非常不寻常。除非将TabControl的背景视为透明,否则您肯定永远不会获得实际的透明度。逻辑相当复杂,我不会试图解释它,而是粘贴MSDN解释:

BackColor属性的默认值是Control.DefaultBackColor属性的值,除非UseVisualStyleBackColor和Application.RenderWithVisualStyles属性值均为true,并且父TabControl的外观属性值为Normal,在这种情况下,“BackColor”属性的默认值是透明的。默认情况下,放置在选项卡页上的子控件将继承BackColor值,因此此行为会导致子控件的背景以当前视觉样式呈现

更改BackColor属性的值会自动将UseVisualStyleBackColor属性设置为false。如果希望使用视觉样式呈现TabPage背景,但希望子控件继承指定的BackColor值,请在设置BackColor属性后设置UseVisualStyleBackColor属性