通常,我使用Application.Current.Host.Content.ScaleFactor
来检查设备的分辨率,但现在720p
和1080p
的值相同。
那么它们的区别是什么呢?谢谢!
答案 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;
}
}
以下是每个比例因子值的相应分辨率:
答案 1 :(得分:1)
按照本文详述的指导进行操作 http://blogs.windows.com/windows_phone/b/wpdev/archive/2013/11/22/taking-advantage-of-large-screen-windows-phones.aspx
答案 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!