如何知道Windows Phone 8上的720p或1080p?

时间:2014-01-03 12:44:44

标签: windows-phone-8

通常,我使用Application.Current.Host.Content.ScaleFactor来检查设备的分辨率,但现在720p1080p的值相同。

那么它们的区别是什么呢?谢谢!

4 个答案:

答案 0 :(得分:4)

这是一个代码片段,即使对于1080p设备,它也能提供正确的比例因子:

public int ScaleFactor
{
    get
    {
        object physicalScreenResolutionObject;

        if (DeviceExtendedProperties.TryGetValue("PhysicalScreenResolution", out physicalScreenResolutionObject))
        {
            var physicalScreenResolution = (Size)physicalScreenResolutionObject;

            return (int)(physicalScreenResolution.Width / 4.8);
        }

        return Application.Current.Host.Content.ScaleFactor;
    }
}

以下是每个比例因子值的相应分辨率:

  • 100 => WVGA(480 * 800)
  • 150 => 720p(720 * 1280)
  • 160 => WXGA(768 * 1280)
  • 225 => 1080p(1080 * 1980)

来源:Handle 1080p in Windows Phone like a Pro!

答案 1 :(得分:1)

答案 2 :(得分:0)

以下是Nokia Developer blog的内容。

public static Size DisplayResolution  
     {  
       get  
       {  
         if (Environment.OSVersion.Version.Major<8)  
           return new Size(480,800);  
         int scaleFactor=(int) GetProperty(System.Windows.Application.Current.Host.Content, "ScaleFactor");  
         switch (scaleFactor)  
         {  
           case 100:  
             return new Size(480, 800);  
           case 150:  
             return new Size(720, 1280);  
           case 160:  
             return new Size(768, 1280);  
         }  
         return new Size(480, 800);  
       }  
     }  
     private static object GetProperty(object instance, string name)  
     {  
       var getMethod= instance.GetType().GetProperty(name).GetGetMethod();  
       return getMethod.Invoke(instance, null);  
     }

希望这有帮助!

答案 3 :(得分:0)

XamlEssentials是一组用于构建基于XAML的应用程序的巧妙帮助程序。最近,它增加了一些辅助工具,使其易于处理大分辨率屏幕。

静态属性DisplayHelper.CurrentResolution会返回一个枚举,告知您分辨率是DisplayResolutions.WVGA, DisplayResolutions.WXGA, DisplayResolutions.HD720p,还是DisplayResolutions.HD1080p

静态属性DisplayHelper.IsPhablet有助于确定屏幕尺寸是否大于5英寸,即使您使用的是6英寸720p的屏幕,也可以进行不同的渲染,例如Lumia 1320。

静态方法ResourceHelper.AddPhabletStyle()只允许您在屏幕大于5英寸时添加特定的ResourceDictionary,因此您可以根据屏幕大小轻松更改页面布局。

XamlEssentials还有其他助手,可以更轻松地处理GDR3的新增功能。您可以阅读有关这些助手here的更多信息。

您可以从NuGet轻松地将XamlEssentials添加到项目中,也可以从GitHub下载源代码。

HTH!