透明标签控件显示为白色

时间:2013-02-21 21:45:30

标签: c# winforms

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

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

我正在寻找任何解释:

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

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

1 个答案:

答案 0 :(得分:5)

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

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

  

BackColor属性的默认值是Control.DefaultBackColor属性的值,除非UseVisualStyleBackColor和Application.RenderWithVisualStyles属性值都为true且父TabControl的Appearance属性的值为Normal,在这种情况下默认值为BackColor属性的值是Transparent。您放置在TabPage上的子控件默认会继承BackColor值,因此这种行为会导致子控件的背景以当前视觉样式呈现。

     

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