如何获得屏幕的分辨率? 对于WinRT应用程序?

我想知道屏幕分辨率,以便我可以根据Windows 8应用程序的分辨率来设置元素的高度。

这个怎么样?

var bounds = Window.Current.Bounds; double height = bounds.Height; double width = bounds.Width; 

获取当前窗口的边界很容易。 但是,如果你想为更大的屏幕设置一个大的字体大小(分辨率与10“设备相同,但屏幕是27”),这不会有帮助。 请参阅缩放到不同的屏幕我使用以下方法来检测屏幕大小和适当更改文本块字体样式。

  void detectScreenType() { double dpi = DisplayProperties.LogicalDpi; var bounds = Window.Current.Bounds; double h; switch (ApplicationView.Value) { case ApplicationViewState.Filled: h = bounds.Height; break; case ApplicationViewState.FullScreenLandscape: h = bounds.Height; break; case ApplicationViewState.Snapped: h = bounds.Height; break; case ApplicationViewState.FullScreenPortrait: h = bounds.Width; break; default: return; } double inches = h / dpi ; string screenType = "Slate"; if (inches < 10) { screenType = "Slate"; } else if (inches < 14) { screenType = "WorkHorsePC"; } else { screenType = "FamilyHub"; } ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings; localSettings.Values["screenType"] = screenType; } 

对于支持DirectX的应用程序来说,最好的select可能适用于所有其他种类的城市应用程序:

http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/07/24/get-screen-resolution-in-windows-8-metro-style-application.aspx

PS来吧,获取窗口大小,以确定屏幕分辨率? 怎么样捕捉/填充模式? 这个世界如此破碎: – /

显然我没有足够的代表来回复post,但是对于@Krishna的回答,可能值得注意的是他的解决scheme需要:

 using Windows.UI.Xaml; 

可能对大多数人来说不是问题,但在我的情况下(试图从导入的库中获取执行应用程序的parsing),默认情况下不存在。

希望这可以帮助别人…

你在使用XAML吗? 如果是这样没关系。 使用网格控件。 它将填满所有可用的空间。 阅读杰里的博客 ,为什么你可能想使用xaml进行WinRT开发。