Windows Phone 10 - 获取正确的屏幕分辨率

时间:2015-12-02 05:37:10

标签: c# windows-phone

我有一个Windows Phone 8.1 Silverlight应用程序,可以更改锁屏壁纸。我根据设备分辨率有多个版本的每个壁纸。对于具有QHD屏幕的新微软Lumia 950,我生成了分辨率为2560x1440的图像。这对应于16:9的纵横比。现在我曾经认为以编程方式确定设备屏幕大小的正确方法如下:

double deviceWidth = Application.Current.Host.Content.ActualWidth * (int)DisplayProperties.ResolutionScale / 100;
double deviceHeight = Application.Current.Host.Content.ActualHeight * (int)DisplayProperties.ResolutionScale / 100;

但是,当我在Lumia 950上调试时,我会看到以下内容:

//deviceHeight = 1200
//deviceWidth = 720  

此外,这给出了15:9的不同纵横比。我怀疑这种差异是由于Windows 10底部存在柔和,可忽略的导航栏。我看到的其他值是:

//Application.Current.Host.Content.ActualWidth= 480;
//Application.Current.Host.Content.ActualWidth= 800;
// (int)DisplayProperties.ResolutionScale = 150;

微软提到here甚至:

on a 1080p resolution screen, the ScaleFactor property will return 1.5, although a 2.25x scale is used internally by the OS.

因此,通过这种逻辑,QHD的ScaleFactor应为3,但同样返回最大值1.5。然后,任何人都知道确定设备屏幕尺寸的另一种方法吗?目前我会切换到RM-1104代码来识别Lumia 950,虽然这是不切实际的,因为其他代码肯定会在以后添加。

0 个答案:

没有答案