Maison > développement back-end > C++ > Comment les applications C# peuvent-elles récupérer avec précision les facteurs de mise à l'échelle de l'affichage Windows ?

Comment les applications C# peuvent-elles récupérer avec précision les facteurs de mise à l'échelle de l'affichage Windows ?

Susan Sarandon
Libérer: 2025-01-15 11:18:47
original
851 Les gens l'ont consulté

How Can C# Applications Accurately Retrieve Windows Display Scaling Factors?

Accès aux paramètres d'affichage Windows dans les applications C#

Windows 7 et versions ultérieures offrent des paramètres d'affichage personnalisables, permettant aux utilisateurs d'ajuster la taille du texte et d'autres aspects visuels. L'accès à ces paramètres est crucial pour de nombreuses applications afin de garantir un bon fonctionnement.

Récupération de la mise à l'échelle de l'affichage Windows en C#

Bien que C# puisse accéder aux paramètres d'affichage, s'appuyer uniquement sur graphics.DpiX et DeviceCap.LOGPIXELSX pourrait ne pas fournir des facteurs de mise à l'échelle précis à tous les niveaux.

Un calcul du facteur d'échelle plus précis

Pour une détermination précise du facteur d'échelle, utilisez cette méthode :

  1. Importez la bibliothèque gdi32.dll.

  2. Définissez une énumération pour les capacités des appareils (DeviceCap).

  3. Implémenter une méthode pour calculer le facteur d'échelle :

    • Obtenez le contexte graphique (GDI) pour le bureau.
    • Utilisez GetDeviceCaps pour récupérer les hauteurs logiques et physiques de l'écran en pixels.
    • Lâchez la poignée GDI.
    • Calculez le facteur d'échelle en divisant la hauteur physique par la hauteur logique.

Exemple de code :

<code class="language-csharp">using System;
using System.Drawing;
using System.Runtime.InteropServices;

public class DisplayScaler
{
    [DllImport("gdi32.dll")]
    static extern int GetDeviceCaps(IntPtr hdc, int nIndex);

    public enum DeviceCap
    {
        VERTRES = 10,
        DESKTOPVERTRES = 117
    }

    public float GetScalingFactor()
    {
        using (Graphics g = Graphics.FromHwnd(IntPtr.Zero))
        {
            IntPtr desktop = g.GetHdc();
            int logicalHeight = GetDeviceCaps(desktop, (int)DeviceCap.VERTRES);
            int physicalHeight = GetDeviceCaps(desktop, (int)DeviceCap.DESKTOPVERTRES);
            g.ReleaseHdc(desktop);
            return (float)physicalHeight / logicalHeight;
        }
    }
}</code>
Copier après la connexion

Cette approche garantit que les applications C# récupèrent avec précision le facteur de mise à l'échelle de l'affichage Windows, permettant ainsi des ajustements en fonction des paramètres d'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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal