如何获取设备(Windows Phone)的屏幕分辨率

12

我怎样从设置(Windows Phone)中获取设备的屏幕分辨率?


2
可能是如何在Windows Phone 7系列上获取屏幕尺寸?的重复问题。 - Katriel
你需要它做什么?分辨率是一样的。 - Claus Jørgensen
1
现在是这样的,但是在下一次系统更新之后可能会有更多的解决方案,所以这可能是那种问题的一个很好的原因。 - MarcinJuraszek
4个回答

21
public void GetScreenResolution()  
{  
     string ScreenWidth = Application.Current.Host.Content.ActualWidth.ToString();  
     string ScreenHeight = Application.Current.Host.Content.ActualHeight.ToString();  
     MessageBox.Show(ScreenWidth + "*" + ScreenHeight);  
}  

1
当然它能工作(我在我的DeviceInfo应用程序中以同样的方式实现),但不要忘记,如果使用SDK 7.1(支持7.x设备),在WP8上运行时将导致错误的值。 - hfrmobile
在我的Lumia 925上,使用WP8.1返回的分辨率是480x800,而外部规格网站声称该分辨率为768x1280。这里似乎有些问题。 - Seva Alekseyev

6
这可能是了解您的应用程序运行在哪个屏幕分辨率上的更好方法。
if(App.Current.Host.Content.ScaleFactor == 100)
{
  // WVGA
}
else if (App.Current.Host.Content.ScaleFactor == 160)
{
  // WXGA
}
else if (App.Current.Host.Content.ScaleFactor == 150)
{
  // 720p
}

来源 http://msdn.microsoft.com/zh-cn/library/windowsphone/develop/jj206974(v=vs.105).aspx

这是关于Windows Phone开发的官方文档。其中包括了许多有用的信息,如应用程序生命周期、XAML布局、触摸输入和网络通信等方面的内容。如果您正在开发Windows Phone应用程序,这篇文章将会对您非常有帮助。

2
如果微软为FullHD添加另一个比例因子怎么办?不要硬编码,否则会被踩。 - Grigory
2
这是直接从上面链接的微软网站中获取的。当然,如果添加了新的分辨率/比例因子,则需要在上述代码中添加另一个条件语句。你认为有什么解决方法吗?不要无缘无故地投反对票。 - Paras Wadehra
我想看看你对这个问题的解决方案。 - Paras Wadehra

1

看起来还不错,但是正如 https://dev59.com/o2kw5IYBdhLWcg3wfKrZ#14018398 中所描述的那样,当微软添加另一个显示分辨率时,它将会失败!特别是因为如果没有任何比例因子匹配,就没有异常处理。因此,请至少在您的 switch 条件中添加一个默认部分。 - S0me0ne

1
这实际上需要结合@Dmitriy Reznik@Paras Wadehra的回答,因为Host.Content暴露的尺寸是未缩放的尺寸。
var content = App.Current.Host.Content;

var screenResolution = new Size(
    content.ActualWidth*content.ScaleFactor/100,
    content.ActualHeight*content.ScaleFactor/100);

另一种了解显示比例的方法是:DisplayProperties.LogicalDpi / 96.0f - Igor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接