【问题标题】:ResolutionScale vs RawPixelsPerViewPixel on Windows Phone 8.1Windows Phone 8.1 上的 ResolutionScale 与 RawPixelsPerViewPixel
【发布时间】:2015-06-05 22:22:18
【问题描述】:

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

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

  • 分辨率比例
  • 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,如果我想要一个更精确的数字,我似乎无法找到与上述“近似”ResolutionScale 值相同的值我的 Windows 8.1 应用程序。

我猜这是一个两部分的问题:

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

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

【问题讨论】:

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


    【解决方案1】:

    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 英寸”构建视频中认出了这个名字。
    猜你喜欢
    • 2014-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    相关资源
    最近更新 更多