Maison >développement back-end >C++ >Comment puis-je déterminer avec précision le facteur de mise à l'échelle de l'affichage Windows en C# ?

Comment puis-je déterminer avec précision le facteur de mise à l'échelle de l'affichage Windows en C# ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-15 11:03:47234parcourir

How Can I Accurately Determine Windows Display Scaling Factor in C#?

Accès et utilisation de la mise à l'échelle de l'affichage Windows dans les applications C#

Les utilisateurs de Windows peuvent ajuster la mise à l'échelle de l'affichage pour modifier la taille du texte et des éléments de l'interface utilisateur. Cette fonctionnalité est cruciale pour les développeurs C# qui doivent adapter leurs applications à différents paramètres de mise à l'échelle pour une expérience utilisateur optimale.

Déterminer avec précision le facteur d'échelle

Les méthodes standard telles que Graphics.DpiX et DeviceCap.LOGPIXELSX peuvent ne pas être fiables pour déterminer le facteur d'échelle précis. Une approche plus robuste consiste à calculer le facteur en utilisant les hauteurs d'écran logiques et physiques :

<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 logicalHeight = GetDeviceCaps(desktop, (int)DeviceCap.VERTRES);
        int physicalHeight = GetDeviceCaps(desktop, (int)DeviceCap.DESKTOPVERTRES);
        g.ReleaseHdc(desktop);
        return (float)physicalHeight / logicalHeight;
    }
}</code>

Cette fonction exploite GetDeviceCaps pour obtenir les hauteurs d'écran logiques et physiques. Le facteur de mise à l'échelle est ensuite calculé comme le rapport de ces hauteurs, offrant un reflet précis des paramètres de mise à l'échelle de l'affichage de l'utilisateur. Cela garantit un comportement cohérent des applications dans diverses configurations d'affichage.

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