c# - 为什么在 Windows 经典主题中 TabControl 背景没有改变颜色?

标签 c# .net winforms tabcontrol tabpage

在 Win7 主题下效果很好,但在 win classic 主题下看起来很奇怪。

在 Win 7 主题中: enter image description here

在 Win 经典主题中:

enter image description here

有机会解决这个问题吗?

最佳答案

这是设计使然。它与“改变颜色”没有任何关系,它实际上是一种透明效果。窗口是矩形的,形状不适合标签。该控件首先通过要求父窗口绘制自身并传递其自己的窗口句柄来绘制选项卡的空间。然后在上面绘制标签。您可以通过设置父级的 BackgroundImage 属性来查看这一点。还有 Label 和 PictureBox 控件模拟透明度的方式。

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

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

关于c# - 为什么在 Windows 经典主题中 TabControl 背景没有改变颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12244602/

相关文章:

c# - 如何在 C# 中创建 Skype 类的实例?

c# - 如何测量网页的响应和加载时间?

c# - 如何在 C# 中恢复 SQL Server 2012 数据库 .bak 文件?

C# 字符串格式

-1 的 C# 7 二进制文字

c# - 如何在运行时查找 C# .NET 集成测试内部的物理路径?

c# - ProgressBar 在 Windows 窗体中很慢

c# - ListView 和文件输出的问题

c# - 如何在不同的线程上更改窗体的窗口状态?

c# - 它是反模式吗?