如何检测用户的字体(DPI)?

时间:2017-06-01 05:37:23

标签: dpi

我试图了解运行我的应用程序的DPI设置。

我试过了。

data Position = Position Int Int                                                                                                                                     

isValid :: Position -> Bool
isValid (Position x y) = x `elem` ['a'..'h'] && y `elem` [1..8]

我试图使用

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

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

两者都显示96 DPI。在我的普通计算机上,也在我的虚拟机上,DPI设置为150%。

如何找到当前屏幕的正确DPI?

//莱纳斯

1 个答案:

答案 0 :(得分:0)

我发现了问题所在。

我没有提供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>

有了它,它按预期工作。