在Win7主题中它运行良好,但在win经典主题中看起来很奇怪。
在Win 7主题中:
在Win Classic主题中:
有没有机会解决这个问题?
答案 0 :(得分:5)
这是设计的。它与“改变颜色”没有任何关系,它实际上是一种透明效果。窗口是矩形的,没有形状以适应标签。控件首先通过询问父窗口绘制自己,通过自己的窗口句柄来绘制选项卡的空间。然后在上面绘制标签。您可以通过设置父级的BackgroundImage属性来查看。另外,例如Label和PictureBox控件模拟透明度的方式。
这是视觉样式渲染器实现的行为。 Windows Classic不使用任何透明效果。
如果这对您真的很重要,那么请考虑WPF。它没有为其控件使用窗口,因此不受所选主题的影响。
答案 1 :(得分:1)
如果您真的想要自己的样式无关自定义标签,draw the tab yourself使用OwnerDrawFixed
。查看 example on codeproject 。
答案 2 :(得分:0)
与How to change the background color of unused space tab in C# winforms?
相同的问题你要重载OnPaintBackground
方法