【问题标题】:screen resolution dependent image source取决于屏幕分辨率的图像源
【发布时间】:2013-02-07 11:46:27
【问题描述】:

我正在开发一个 Windows 8 Metro(是的!)应用程序。如何提供依赖于屏幕分辨率的图像源?

根据these 指南,我们也可以使用图像命名约定来实现它。

我有一个如下所示的图像控件。

<Image Source="Assets/test.jpeg"/> 

资产文件夹中还有 test.scale-100.jpg、test.scale-140.jpg 和 test.scale-180.jpg 图像。每张图片都有不同的图标颜色来识别加载的是哪张图片。

如果我在模拟器中运行应用程序并更改屏幕分辨率,我仍然会看到任何分辨率的 test.scale-100.jpg。为什么会这样?在哪种情况下操作系统会加载 test.scale-140.jpg 或 test.scale-180.jpg 图像?

编辑:我搞定了。一旦您的应用程序在模拟器中启动,请按主页按钮将其关闭并卸载它。在 VS 中,右键单击项目,然后单击部署。应用程序现在应该部署到模拟器。更改分辨率并启动应用程序。您现在应该看到操作系统加载的正确图像。冲洗并重复以测试其他分辨率。

【问题讨论】:

  • 重新。你的编辑——你做的比你需要的要多。您只需要关闭应用程序,然后重新启动它。并不是说按下 Windows 键(根据您对我的回答的评论)不会关闭应用程序,而只是将焦点放在开始屏幕上。要关闭您的应用程序,请按 Alt-F4,或从屏幕顶部向下滑动到底部。正确关闭应用程序后,以不同的模拟器分辨率重新启动它就足以反映更改。

标签: xaml windows-8 microsoft-metro winrt-xaml


【解决方案1】:

缩放是自动的。如果您的图片名称正确,并且您在模拟器中更改了分辨率您必须重新启动应用才能看到缩放后的图片。它不会即时发生,IIRC。

【讨论】:

  • 这就是我正在做的事情。在 VS 中按 F5。它以 10.6" 1024x768 分辨率启动模拟器。应用程序已启动,我看到 test.scale-100.jpg 符合预期。接下来,我按 HOME 按钮关闭应用程序。将模拟器的屏幕分辨率更改为 27" 英寸并启动应用程序。我仍然看到相同的 test.scale-100.jpg 而不是 test.scale-140.jpg 或 test.scale-180.jpg
【解决方案2】:
  1. 终于搞定了。关闭应用程序并将其卸载 模拟器。

  2. 在 VS 中,右键单击项目,然后单击部署。

  3. 更改为所需的屏幕分辨率并启动应用程序。操作系统不应根据分辨率选择正确的图像。

  4. 冲洗并重复相同的操作以测试各种分辨率的图像。

【讨论】:

  • 你做的比你需要的要多。您只需要关闭应用程序,然后重新启动它。并不是说按下 Windows 键(根据您对我的回答的评论)不会关闭应用程序,而只是将焦点放在开始屏幕上。要关闭您的应用程序,请按 Alt-F4,或从屏幕顶部向下滑动到底部。正确关闭应用程序后,以不同的模拟器分辨率重新启动它就足以反映更改。
  • 我到家后会检查一下。也会相应地更新答案。感谢您的提示。
猜你喜欢
  • 2011-11-18
  • 1970-01-01
  • 2013-07-20
  • 1970-01-01
  • 1970-01-01
  • 2015-08-20
  • 1970-01-01
  • 2016-10-18
  • 1970-01-01
相关资源
最近更新 更多