如何使用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
类可能是一个很好的方法。     

要回复问题请先登录注册