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