12

如何从设置(Windows Phone)获得设备的屏幕分辨率?如何获得设备(Windows Phone)的屏幕分辨率

+2

可能重复的[如何获取Windows Phone 7系列的屏幕大小?](http://stackoverflow.com/questions/2596732/how-to-get-screen-size-on-windows-phone -7系列) – katrielalex 2012-03-24 14:16:54

+0

你需要什么?决议是一样的。 – 2012-03-24 14:17:02

+1

这是现在,但在下次系统更新后会有更多可能的解决方案,所以它可能是这类问题的一个很好的理由。 – MarcinJuraszek 2012-03-24 14:25:25

回答

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 2013-07-25 17:55:13

+0

在我的WP8.1的Lumia 925上,它返回480x800,而规格网站声称分辨率是768x1280。有些东西在这里。 – 2015-10-20 16:34:11

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/en-us/library/windowsphone/develop/jj206974%28v=vs.105%29.aspx

+0

我会试一试! – hfrmobile 2013-07-25 17:55:32

+2

如果MS为FullHD添加另一个比例因子会怎样? downvote for hardcode – Grigory 2014-03-25 12:49:43

+2

这是直接从上面链接的微软网站。当然,如果添加新的分辨率/比例因子,则在上面的代码中添加另一个条件。你认为有办法解决吗?不要无缘无故投票。 – 2014-03-25 16:59:00

1
+0

谢谢,帮助了很多! – 2013-11-10 06:24:31

+0

似乎没问题,但是,如http://stackoverflow.com/a/14018398/1130789中所述,当Microsoft添加另一个显示分辨率时,它将失败!尤其是因为没有任何比例因子匹配,所以没有异常处理。所以至少在你的交换机条件中增加一个默认部分。 – S0me0ne 2014-04-25 10:49:34

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); 
+0

知道显示比例的另一种方法是: 'DisplayProperties.LogicalDpi/96.0f' – Igor 2016-06-24 06:20:52