Maison >développement back-end >C++ >Comment obtenir la taille actuelle de l'écran dans WPF sur une configuration multi-écran ?

Comment obtenir la taille actuelle de l'écran dans WPF sur une configuration multi-écran ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-05 16:22:40284parcourir

How to Get the Current Screen Size in WPF on a Multi-Screen Setup?

Obtention de la taille actuelle de l'écran dans WPF

Votre question se concentre sur la détermination de la taille de l'écran actuel dans une configuration multi-écran, où tous les écrans peuvent ne pas utiliser la même résolution. Bien que vous ayez mentionné l'utilisation de SystemParameters.PrimaryScreenWidth et SystemParameters.PrimaryScreenHeight pour l'écran principal, il est en effet essentiel d'obtenir la taille de l'écran actuel.

Pour résoudre ce problème, vous pouvez utiliser WpfScreen, une classe wrapper qui encapsule la classe Screen de System.Windows.Forms. Cette classe propose plusieurs méthodes pour récupérer des informations liées à l'écran :

  • AllScreens() : Renvoie une énumération d'objets WpfScreen représentant tous les écrans.
  • GetScreenFrom(Window window): Récupère le WpfScreen pour un spécifié window.
  • GetScreenFrom(Point point): Obtient le WpfScreen pour l'écran qui contient un point donné.
  • Primary: Renvoie l'écran principal .

De plus, WpfScreen fournit les éléments suivants propriétés :

  • DeviceBounds : Les limites de l'écran en pixels indépendants de l'appareil.
  • WorkingArea : La zone de travail utilisable sur l'écran dans pixels indépendants de l'appareil.
  • IsPrimary : Indique si l'écran est l'écran principal.
  • DeviceName : Le nom de l'appareil de l'écran.

Exemple d'utilisation :

// Get the primary screen's size
var primaryScreen = WpfScreen.Primary;
Console.WriteLine("Primary Screen: {0} x {1}", primaryScreen.DeviceBounds.Width, primaryScreen.DeviceBounds.Height);

// Get the current window's screen size
var currentWindow = new Window();  // Replace this with the actual window object
var currentScreen = WpfScreen.GetScreenFrom(currentWindow);
Console.WriteLine("Current Window's Screen: {0} x {1}", currentScreen.DeviceBounds.Width, currentScreen.DeviceBounds.Height);

// Get the screen containing a specified point
var point = new Point(500, 300);
var containingScreen = WpfScreen.GetScreenFrom(point);
Console.WriteLine("Screen Containing Point: {0} x {1}", containingScreen.DeviceBounds.Width, containingScreen.DeviceBounds.Height);

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn