2017-06-01 48 views
0

我在試圖找出什麼DPI設置我的應用程序正在運行。如何檢測用戶的字體(DPI)?

我試過了。

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

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

我曾嘗試使用

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")) 

兩臺顯示器96 DPI。在我的普通電腦上,以及我的虛擬DPI設置爲150%。

如何找到當前屏幕的正確DPI?

// Linus

回答

0

我發現問題所在。

我沒有一個應用程序清單文件hade的dpiaware集。

<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> 

有了它,它按預期工作。