透明标签控件显示为白色

Imm*_*lue 2 c# winforms

无论如何,我对标签控件有点困难.当我将新的选项卡控件拖到窗体上时,它显示为白色,而不是我期待的灰色(系统颜色).

当我查看属性时,其颜色设置为Web透明.好的,那么它应该是透明的(它不会让它后面的任何东西显示出来).手动将选项卡控件背面颜色设置回系统灰色类型,但顶部的选项卡仍显示为白色.我假设我也能以某种方式改变它们的颜色,但是我很快就进入了从默认值改变这么多值的领域,我显然缺少某种类型的领域.我尽可能搜索"透明标签控件绘制白色"的每个变量,虽然我发现与Windows配置文件有关,但这似乎主要限于使用您在访问中访问的vb访问2003.

我正在寻找任何解释:

  • 我需要做些什么来正确使用选项卡控件的透明度
  • 我错误地理解了标签控件中透明度的目的
  • 如何轻松更改选项卡控件的相应部分的所有颜色以使其不透明.

我正在查看MCTS的Windows窗体,所以请不要给出"你应该使用X代替"类型的答案.

Han*_*ant 5

不,变白当然是正常的.启用视觉样式时,TabControl和TabPage将使用主题颜色进行渲染.因此,在标准Windows主题的计算机上使标签页变白.

是的,透明的默认BackColor非常不寻常.除非你把TabControl的背景视为透明度,否则你肯定永远不会获得实际的透明度.逻辑很复杂,而不是试图解释它我只是粘贴MSDN解释:

除非UseVisualStyleBackColor和Application.RenderWithVisualStyles属性值都为true且父TabControl的Appearance属性的值为Normal,在此情况下默BackColor属性是透明的.您放置在TabPage上的子控件默认会继承BackColor值,因此这种行为会导致子控件的背景使用当前视觉样式进行渲染.

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