2

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

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

我正在寻找任何解释:

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

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

4

1 回答 1

5

不,变白当然是正常的。启用视觉样式时,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 属性。

于 2013-02-22T02:27:01.250 回答