Accès aux paramètres d'affichage de Windows en C#
Windows 7 et versions ultérieures fournissent un paramètre du Panneau de configuration permettant aux utilisateurs d'ajuster la taille du texte et des éléments de l'interface utilisateur. Les développeurs C# ont souvent besoin de récupérer ce paramètre pour le comportement dynamique des applications.
Une solution pratique
L'utilisation directe de graphics.DpiX
et DeviceCap.LOGPIXELSX
renvoie de manière inattendue une valeur fixe (96 DPI), quelle que soit la mise à l'échelle réelle. Pour déterminer avec précision le facteur d'échelle, une approche différente est nécessaire :
<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 for 125% scaling } }</code>
Cet extrait de code exploite GetDeviceCaps
pour comparer les hauteurs d'écran logiques et physiques, fournissant ainsi un facteur de mise à l'échelle précis. Un résultat de 1,25, par exemple, indique un niveau de mise à l'échelle de 125 %.
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!