2017-06-01 3 views
0

Ich versuche herauszufinden, auf welche DPI-Einstellung meine Anwendung läuft.Wie erkenne ich, ob die Schriftart des Benutzers (DPI)?

Ich habe es versucht.

Using g As Graphics = MyBase.CreateGraphics() 
     dpiX = g.DpiX 
     dpiY = g.DpiY 
End Using 

TextBox1.Text = dpiX.ToString() 
TextBox2.Text = dpiy.ToString() 

Und ich habe versucht,

Dim searcher As New ManagementObjectSearcher(_ 
       "root\CIMV2", _ 
       "SELECT * FROM Win32_DisplayConfiguration") 

      For Each queryObj As ManagementObject in searcher.Get() 
      TextBox3.Text = string.Format("LogPixels: {0}", queryObj("LogPixels")) 

Beide Displays 96 DPI zu verwenden. Auf meinem normalen Computer und auch auf meinem virtuellen mit DPI auf 150% eingestellt.

Wie finde ich die richtige DPI des aktuellen Bildschirms?

// Linus

Antwort

0

Ich fand, was das Problem ist.

Ich hatte keine Anwendung Manifest-Datei, die den dpiaware-Satz hade.

<asmv3:application xmlns:asmv3="urn:schemas-microsoft-com:asm.v3"> 
    <asmv3:windowsSettings 
     xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings"> 
     <dpiAware>True/PM</dpiAware> 
    </asmv3:windowsSettings> 
</asmv3:application> 

Damit arbeitet es wie erwartet.

Verwandte Themen