Comment obtenir la résolution de l’écran? Pour une application WinRT?

Je souhaite connaître la résolution de l’écran afin de pouvoir définir la hauteur d’un élément en fonction de la résolution dans une application Windows 8.

Que dis-tu de ça?

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

Obtenir les limites de la fenêtre actuelle est facile. Mais si vous voulez définir une taille de police importante pour un écran plus grand (la résolution est la même que celle d’un périphérique de 10 “, mais celle de l’écran est de 27”), cela ne vous aidera pas. Reportez-vous à la rubrique Mise à l’échelle sur différents écrans. J’ai utilisé la méthode suivante pour détecter la taille de l’écran et modifier le style de police du bloc de texte de manière appropriée.

  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 ; ssortingng 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; } 

Probablement la meilleure option pour les applications compatibles DirectX, cependant, applicable à tous les autres types d’applications de métro est:

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

PS Allez, la taille de la fenêtre pour déterminer la résolution de l’écran? Qu’en est-il des modes capturés / remplis? Ce monde est tellement brisé: – /

Apparemment, je n’ai pas encore assez de représentants pour répondre aux messages, mais en ce qui concerne la réponse de @ Krishna, il peut être intéressant de noter que sa solution nécessite:

 using Windows.UI.Xaml; 

Ce n’est probablement pas un problème pour la plupart d’entre vous, mais dans mon cas (essayer de saisir la résolution de l’exécution d’une application depuis une bibliothèque imscope), ce n’était pas là par défaut.

J’espère que ceci aide quelqu’un d’autre…

Utilisez-vous XAML? Si c’est le cas, cela n’a pas d’importance. Utilisez le contrôle Grid. Cela remplira tout l’espace disponible. Lisez le blog de Jerry pour savoir pourquoi vous pourriez vouloir utiliser xaml pour le développement WinRT.