如何使用 C# 在 Windows 窗体中应用 Windows 经典主题的视觉样式

2024-04-04

我正在为我的 Windows 应用程序使用 VisualStyleRenderer,它非常适合 Windows XP 主题,但不适用于 Windows Classic 主题。任何人都可以建议我如何使应用程序主题可支持。

Update:

让我用一个清晰​​的图片来描述一下。我有一个列表视图,在列表项上,我使用 VisualStyleRenderer 类绘制一个按钮,并使用一些渐变颜色绘制该按钮区域。它适用于 Windows XP 主题,但是当我将主题更改为 Windows Classic 时,我使用 VisualStyleRenderer 类绘制的按钮 wffect 没有出现。

任何帮助将不胜感激

提前致谢。


这不会发生。 Windows 经典主题没有“视觉样式”。这就是他们所说的“经典”的含义:这是在视觉风格发明之前就已经使用多年的主题。

Windows XP Luna 主题 http://en.wikipedia.org/wiki/Windows_XP_themes#Luna_theme是第一个支持视觉样式的。这航空主题 http://en.wikipedia.org/wiki/Windows_AeroWindows Vista 和 7 中包含的也支持视觉样式,尽管它们看起来略有不同。

如果您使用VisualStyleRenderer当你正在做的类时,事情会根据用户选择的主题进行绘制。正如您所说,当您选择 Windows XP 主题时,一切看起来都很好。当您选择经典主题时,事物将使用经典主题进行绘制。这是预期的行为;系统中的其他一切看起来也不同。

您将需要检查并查看是否支持视觉样式,如果不支持,则回退到不同的绘图方法。有样品可用在 MSDN 上 http://msdn.microsoft.com/en-us/library/ms171735.aspx。最简单的事情就是添加一个if评估返回值的语句Application.RenderWithVisualStyles财产 http://msdn.microsoft.com/en-us/library/system.windows.forms.application.renderwithvisualstyles.aspx。如果为真,您可以使用VisualStyleRenderer班级。如果是假的,你需要抛弃它。使用ControlPaint class http://msdn.microsoft.com/en-us/library/system.windows.forms.controlpaint.aspx可能是一个好方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 C# 在 Windows 窗体中应用 Windows 经典主题的视觉样式 的相关文章

随机推荐