【问题标题】:Image scaling in Windows Forms looks worse on Widows XP than it does on Windows 7Windows 窗体中的图像缩放在 Windows XP 上看起来比在 Windows 7 上更糟糕
【发布时间】:2013-01-10 14:11:51
【问题描述】:

我有一个用 C# / .NET 4 编写的 Windows 窗体应用程序,其中包括一个带有 BackgroundImageButton 控件。使用的图像比按钮大,但BackgroundImageLayout 属性是Zoom,因此它被缩放到按钮的大小。

在 Windows 7 上,图像看起来不错。但是,在 Windows XP 上,图像看起来很糟糕。它看起来好像只是通过删除线来缩放。

谁能确认这是预期的行为,除了自己缩放图像并使用按钮中的缩放版本之外,我是否可以做任何事情来修复 Windows XP 上的外观?

谢谢。

【问题讨论】:

  • 简答:自己扩展。
  • 存在差异的原因可能有很多...屏幕分辨率/颜色深度、显卡...
  • @Don:我已经排除了色深(设置为全色)和显卡(我可以在 VM 中重现)。它发生在各种机器上。共同因素是操作系统。
  • 并不是说它可能会有所不同,但是您是否运行 dxdiag 来比较/对比机器视频输出的任何差异?
  • “我可以在 VM 中重现它”不是一个很好的提示,VM 通常在低色模式设置中模拟视频适配器。专注于您在例如 Paint 事件处理程序中为 e.Graphics.InterpolationMode 获得的值。当您获得低质量值时,您无能为力,只能自己缩放图像。

标签: c# winforms .net-4.0 windows-xp


【解决方案1】:

我只能推测在 Windows XP GDI 系统上使用更简单的插值算法进行缩放。虽然找不到任何东西来证实我的猜测。

如果您决定进行手动缩放,您可以从以下链接获取代码和信息:

另一个猜测 - 尝试通过在应用程序中包含清单来启用控件的视觉样式:http://msdn.microsoft.com/en-us/library/aa289524%28v=vs.71%29.aspx

【讨论】:

  • 谢谢!我会看看那些。
  • 我有点同意这个说法,由于 win 7 使用更复杂的 GPU 加速这一事实,XP 与 7 上缺乏 GDI 加速......一种解决方案可能是完全放弃 winforms并坚持使用 WPF,因为其基于 DirectX/图形的架构使 GDI 在任一平台上都更加流畅......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多