gpt4 book ai didi

c# - 影响 ListView header 的 Windows 主题

转载 作者:可可西里 更新时间:2023-11-01 09:11:09 26 4
gpt4 key购买 nike

我用一个包含 ListView 的简单窗体创建了新的 Windows 窗体应用程序 (C#)。然后我改变了View Property详细信息并增加了此 ListView 中使用的字体的大小,结果如下:

这是在 Windows XP 上使用 Windows 经典主题的样子:
enter image description here

这是 Windows XP 主题的结果:
enter image description here

我可以通过删除 Application.EnableVisualStyles() 来防止我的应用程序的外观受到视觉样式的影响。调用或通过更改 Application.VisualStyleState : enter image description here
虽然此更改使 ListView 具有所需的外观,但它也会影响其他控件的外观。我希望我的 ListView 成为唯一不受视觉样式影响的控件

我也发现了类似的问题试图处理它:
Can you turn off visual styles/theming for just a single windows control?
How do I disable visual styles for just one control, and not its children?

不幸的是,上述解决方案均无效。 标题本身似乎由一些受视觉样式影响的控件组成,即使禁用了 ListView 控件的视觉样式也是如此。

任何可以防止视觉样式影响 ListView header 外观的 C# 解决方案都将受到赞赏。

最佳答案

看起来这是一个 known bug没有简单的解决方法。根据那里的答案:

After doing a lot of research with this issue, we find that this is a windows OS bug, which the ComCtl6.0 header control forgets to apply the font information to the drawing DC.

但是您可以自己绘制列标题。参见 this article on MSDN有关如何操作的详细信息,请参阅 listView1_DrawColumnHeader

关于c# - 影响 ListView header 的 Windows 主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10103609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com