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

我使用VisualStyleRenderer作为我的Windows应用程序,它适用于Windows XP主题,但它不适用于Windows经典主题。 任何人都可以建议我如何才能使应用程序主题可支持。

更新:

让我用清晰的画面描述它。 我有一个列表视图和列表项目我正在使用VisualStyleRenderer类绘制一个按钮,并使用一些渐变颜色绘制按钮区域。 它适用于Windows XP主题,但是当我将主题更改为Windows经典时,按钮效果不会通过使用VisualStyleRenderer类绘制。

任何帮助将不胜感激

提前致谢。

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

Windows XP的Luna主题是第一个支持视觉样式的主题 。 Windows Vista和7中包含的Aero主题也支持视觉样式,但它们看起来略有不同。

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

您需要检查并查看是否支持视觉样式,如果不支持,则返回到不同的绘图方法。 MSDN上有一个示例。 最简单的方法是添加一个if语句,用于计算Application.RenderWithVisualStyles属性返回的值。 如果为true,则可以使用VisualStyleRenderer类进行绘制。 如果不对,你需要踢它上学。 使用ControlPaint类可能是一个很好的方法。