为什么在Win Classic主题TabControl的背景不会改变颜色?

时间:2012-09-03 08:45:37

标签: c# .net winforms tabcontrol tabpage

在Win7主题中它运行良好,但在win经典主题中看起来很奇怪。

在Win 7主题中: enter image description here

在Win Classic主题中:

enter image description here

有没有机会解决这个问题?

3 个答案:

答案 0 :(得分:5)

这是设计的。它与“改变颜色”没有任何关系,它实际上是一种透明效果。窗口是矩形的,没有形状以适应标签。控件首先通过询问父窗口绘制自己,通过自己的窗口句柄来绘制选项卡的空间。然后在上面绘制标签。您可以通过设置父级的BackgroundImage属性来查看。另外,例如Label和PictureBox控件模拟透明度的方式。

这是视觉样式渲染器实现的行为。 Windows Classic不使用任何透明效果。

如果这对您真的很重要,那么请考虑WPF。它没有为其控件使用窗口,因此不受所选主题的影响。

答案 1 :(得分:1)

如果您真的想要自己的样式无关自定义标签,draw the tab yourself使用OwnerDrawFixed。查看 example on codeproject

Custom Tab Control by Curtis Schlak.

答案 2 :(得分:0)

How to change the background color of unused space tab in C# winforms?

相同的问题

你要重载OnPaintBackground方法