【问题标题】:transparent tab control appears white透明选项卡控件显示为白色
【发布时间】:2013-02-21 21:45:29
【问题描述】:

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

当我查看属性时,它的颜色设置为网络透明。好的,所以它应该是透明的(它不会让它背后的任何东西显示出来)。手动将选项卡控件的背景颜色设置回系统灰色类型的作品,但顶部的选项卡仍显示为白色。我假设我也可以以某种方式改变它们的颜色,但是我很快就进入了从默认值更改这么多值的领域,我显然错过了一些类型的领域。我已经尽我所能搜索了各种“透明选项卡控件绘制为白色”,尽管我发现与 Windows 配置文件有关,但这似乎主要限于使用您在访问中访问的 vb 访问 2003。

我正在寻找任何解释:

  • 如何正确使用标签控件的透明度
  • 我误解为选项卡控件中透明度的目的
  • 如何轻松地将选项卡控件相应部分的所有颜色更改为不透明。

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

【问题讨论】:

    标签: c# winforms


    【解决方案1】:

    不,变白当然是正常的。启用视觉样式时,TabControl 和 TabPage 使用主题颜色呈现。这样一来,在标准 Windows 主题的机器上,标签页就会变成白色。

    是的,透明的默认背景颜色很不寻常。你肯定永远不会得到真正的透明度,除非你把 TabControl 的背景视为透明度。逻辑比较复杂,不解释,我就贴上MSDN的解释:

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

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

    【讨论】:

      猜你喜欢
      • 2020-11-29
      • 1970-01-01
      • 1970-01-01
      • 2019-01-24
      • 2020-06-26
      • 2018-07-18
      • 1970-01-01
      • 2018-12-23
      • 1970-01-01
      相关资源
      最近更新 更多