Windows Phone 8.1上的ResolutionScale与RawPixelsPerViewPixel

时间:2015-06-05 22:22:19

标签: windows-phone-8.1 winrt-xaml windows-8.1

我目前正在开发一个通用的Windows 8.1 / Windows Phone 8.1应用程序,并试图了解呈现给我的各种类型的显示信息。

对于Windows Phone,我们可以访问DisplayInformationClass中的两个不同属性:

  • ResolutionScale
  • RawPixelsPerViewPixels

ResolutionScale似乎只适用于某些''像100/140/240,而RawPixelsForViewPixels看起来像是为给定设备提供精确的数字。例如,在我的HTC One上:

  • ResolutionScale:Scale180Percent
  • RawPixelsPerViewPixel:2.6

这些是非常不同的价值观!

我的假设是,ResolutionScale应该用于分割像图像这样的更多离散项目,在这些项目中,您不必拥有在各种范围内制作各种尺寸的奢侈品,RawPixelsPerViewPixel可以为您提供准确的值(例如,用于自定义绘图)。

鉴于Windows.Current.Bounds为我的HTC One提供了415x738的视图像素,而我手机的指定分辨率为1080 x 1920,2.6似乎是正确的。

但是,RawPixelsPerViewPixels仅适用于Windows Phone 8.1,而不适用于Windows 8.1,而且我似乎无法找到等同于"近似"如果我想要一个更精确的Windows 8.1应用程序编号,上面描述的ResolutionScale值。

我想这是一个2部分的问题:

1)如上所述关于填充近似与实际需求的假设是否有效?

2)为什么Windows 8.1不提供这两种功能?当Windows Phone 8.1提供两者时,为什么ResolutionScale值是唯一可用的?

1 个答案:

答案 0 :(得分:1)

ResolutionScale已被弃用;始终对Windows Phone和Windows 10 Universal应用程序使用RawPixelsPerViewPixel

不幸的是,Windows 8.1(在Phone 8.1之前发布)仍然使用ResolutionScale,因此您需要继续将该属性用于Windows 8.1应用程序。

如果您要构建Windows 8.1 / Windows Phone 8.1 Universal应用程序,则需要将共享代码中的任何比例因子计算移动到特定于平台的代码中(例如,只返回一个帮助方法GetScaleFactor()每个平台的正确价值。)