Windows phone 8.1 Windows Phone 8.1上的分辨率比例与原始像素比例

Windows phone 8.1 Windows Phone 8.1上的分辨率比例与原始像素比例,windows-phone-8.1,winrt-xaml,windows-8.1,Windows Phone 8.1,Winrt Xaml,Windows 8.1,我目前正在开发一个通用的Windows 8.1/Windows Phone 8.1应用程序,并试图理解呈现给我的各种类型的显示信息 对于Windows Phone,我们可以访问DisplayInformationClass中的两个不同属性: 分辨率刻度 RawPixelsPerViewPixels ResolutionScale似乎只对某些“层”(如100/140/240)有效,而RawPixelsForViewPixels似乎为给定设备提供了精确的数字。例如,在我的HTC One上: 解

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

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

  • 分辨率刻度
  • RawPixelsPerViewPixels
ResolutionScale似乎只对某些“层”(如100/140/240)有效,而RawPixelsForViewPixels似乎为给定设备提供了精确的数字。例如,在我的HTC One上:

  • 解决方案比例:比例180%
  • 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应用程序提供更精确的数字,我似乎无法找到与上述“近似”分辨率刻度值对应的值

我想这是一个由两部分组成的问题:

1) 上述关于满足近似需求与实际需求的假设是否有效


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

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

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


如果您正在构建一个Windows 8.1/Windows Phone 8.1通用应用程序,那么您需要将所有比例因子计算从共享代码移到特定于平台的代码中(例如,只需一个助手方法
GetScaleFactor()
,它为每个平台返回正确的值)。

感谢您的快速回复,我从“从4到40英寸”构建视频。