.net Core Get Screen Resolution

4 min read Jun 03, 2024
.net Core Get Screen Resolution

Obtenir la résolution de l'écran dans .NET Core

L'obtention de la résolution de l'écran dans .NET Core est un processus simple qui peut être accompli en quelques lignes de code. Cette information est souvent utile pour des tâches telles que l'adaptation de l'interface utilisateur aux différentes tailles d'écran, le redimensionnement d'images ou la configuration de paramètres spécifiques à la résolution.

Utilisation de System.Windows.Forms

La méthode la plus simple pour obtenir la résolution de l'écran en .NET Core consiste à utiliser la classe Screen de l'espace de noms System.Windows.Forms. Cette classe fournit une méthode GetWorkingArea qui retourne un objet Rectangle contenant les dimensions de l'écran de travail, c'est-à-dire la zone disponible pour les fenêtres.

using System.Windows.Forms;

// Obtenir l'écran principal
Screen screen = Screen.PrimaryScreen;

// Obtenir la résolution de l'écran de travail
Rectangle workingArea = screen.WorkingArea;

// Afficher la résolution
Console.WriteLine($"Résolution de l'écran de travail : {workingArea.Width} x {workingArea.Height}");

Utilisation de System.Drawing

Une autre option est d'utiliser la classe Graphics de l'espace de noms System.Drawing. Cette classe fournit une méthode GetHdc qui retourne un pointeur vers le contexte de périphérique de l'écran. Ensuite, vous pouvez utiliser des fonctions Windows API pour obtenir la résolution à partir du contexte de périphérique.

using System.Drawing;
using System.Runtime.InteropServices;

// Créer un objet Graphics
Graphics graphics = Graphics.FromHwnd(IntPtr.Zero);

// Obtenir le contexte de périphérique
IntPtr hdc = graphics.GetHdc();

// Obtenir la résolution de l'écran à l'aide de l'API Windows
int width = GetDeviceCaps(hdc, LOGPIXELSX);
int height = GetDeviceCaps(hdc, LOGPIXELSY);

// Libérer le contexte de périphérique
graphics.ReleaseHdc(hdc);

// Afficher la résolution
Console.WriteLine($"Résolution de l'écran : {width} x {height}");

// Fonction Windows API pour obtenir la résolution
[DllImport("gdi32.dll")]
static extern int GetDeviceCaps(IntPtr hdc, int index);

// Constantes pour les valeurs index
const int LOGPIXELSX = 88;
const int LOGPIXELSY = 90;

Remarques

  • Il est important de noter que System.Windows.Forms et System.Drawing ne sont pas disponibles par défaut dans les projets .NET Core. Vous devrez les installer en tant que références de projet.
  • Les deux méthodes présentées ci-dessus renvoient la résolution de l'écran principal. Pour obtenir la résolution d'autres écrans, vous pouvez utiliser la propriété AllScreens de la classe Screen et itérer sur les écrans disponibles.
  • La méthode utilisant System.Drawing est légèrement plus complexe mais peut fournir une résolution plus précise en fonction de la configuration de l'écran.

En utilisant l'une de ces méthodes, vous pouvez facilement obtenir la résolution de l'écran dans votre application .NET Core et l'utiliser pour adapter votre application aux différentes tailles d'écran.

Related Post