Heim > Backend-Entwicklung > C++ > Wie kann ich den Windows-Anzeigeskalierungsfaktor in C# genau bestimmen?

Wie kann ich den Windows-Anzeigeskalierungsfaktor in C# genau bestimmen?

Patricia Arquette
Freigeben: 2025-01-15 11:03:47
Original
278 Leute haben es durchsucht

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

Zugriff auf und Nutzung der Windows-Anzeigeskalierung in C#-Anwendungen

Windows-Benutzer können die Anzeigeskalierung anpassen, um die Größe von Text und UI-Elementen zu ändern. Diese Funktion ist von entscheidender Bedeutung für C#-Entwickler, die ihre Anwendungen für eine optimale Benutzererfahrung an unterschiedliche Skalierungseinstellungen anpassen müssen.

Skalierungsfaktor genau bestimmen

Standardmethoden wie Graphics.DpiX und DeviceCap.LOGPIXELSX können bei der Bestimmung des genauen Skalierungsfaktors unzuverlässig sein. Ein robusterer Ansatz besteht darin, den Faktor anhand logischer und physischer Bildschirmhöhen zu berechnen:

<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>
Nach dem Login kopieren

Diese Funktion nutzt GetDeviceCaps, um die logischen und physischen Bildschirmhöhen zu ermitteln. Der Skalierungsfaktor wird dann als Verhältnis dieser Höhen berechnet und bietet eine genaue Wiedergabe der Anzeigeskalierungseinstellungen des Benutzers. Dies gewährleistet ein konsistentes Anwendungsverhalten über verschiedene Anzeigekonfigurationen hinweg.

Das obige ist der detaillierte Inhalt vonWie kann ich den Windows-Anzeigeskalierungsfaktor in C# genau bestimmen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage