Récupération précise de la mise à l'échelle de l'affichage Windows dans les applications C#
Adapter le comportement de l'application pour qu'il corresponde aux paramètres d'affichage définis par l'utilisateur, tels que la taille du texte et des éléments, est une tâche de programmation fréquente. Cet article présente une méthode C# robuste pour récupérer avec précision ces paramètres.
Bien que Graphics.DpiX
ou DeviceCap.LOGPIXELSX
soient des approches traditionnelles, elles peuvent produire des valeurs de mise à l'échelle inexactes, en particulier sur les écrans à haute résolution.
Une méthode plus fiable consiste à exploiter la fonction API Windows GetDeviceCaps
pour calculer le facteur de mise à l'échelle. Cette fonction récupère les hauteurs d'écran logiques et physiques, permettant un calcul précis.
Voici le code C# amélioré :
<code class="language-csharp">[DllImport("gdi32.dll")] static extern int GetDeviceCaps(IntPtr hdc, int nIndex); public enum DeviceCap { VERTRES = 10, DESKTOPVERTRES = 117, } private float GetScalingFactor() { using (Graphics g = Graphics.FromHwnd(IntPtr.Zero)) { IntPtr desktop = g.GetHdc(); int logicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.VERTRES); int physicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.DESKTOPVERTRES); g.ReleaseHdc(desktop); return (float)physicalScreenHeight / logicalScreenHeight; // e.g., 1.25 = 125% } }</code>
Cette approche raffinée offre une précision supérieure dans la détermination du facteur de mise à l'échelle sur différents niveaux de mise à l'échelle de l'affichage, permettant des ajustements plus précis des fonctionnalités de l'application en fonction de la configuration de l'affichage de l'utilisateur.
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!