是否可以对用户';s.NET应用程序中的dpi设置
问题描述: 我目前正在开发一个Visual Basic.NET应用程序。事实证明,我的应用程序在运行dpi设置不同于“标准”(windows xp下100%=96dpi)的系统上无法正确显示 当我看到我的GUI有点混乱时,正如您在以下屏幕截图中看到的(由于这是一个缩放问题,因此屏幕截图上的文本是否为德语并不重要;对此表示抱歉): Windows XP,100%扩展,96 dpi->一切都像我期望的那样。 Windows XP,125%缩放,120 dpi->窗口底部的按钮不再适合窗口内部。 我想要实现的目标: 如果显示比例设置为100%以外的任何值,我希望在应用程序启动后立即向用户显示一个警告对话框 问题: 是否有可能读取系统的dpi值?如果是的话,那会是怎样的呢? 似乎也有,但据我所知,它仅适用于Windows应用商店应用。图形类的属性和属性包含以下信息:是否可以对用户';s.NET应用程序中的dpi设置,.net,vb.net,windows,.net,Vb.net,Windows,问题描述: 我目前正在开发一个Visual Basic.NET应用程序。事实证明,我的应用程序在运行dpi设置不同于“标准”(windows xp下100%=96dpi)的系统上无法正确显示 当我看到我的GUI有点混乱时,正如您在以下屏幕截图中看到的(由于这是一个缩放问题,因此屏幕截图上的文本是否为德语并不重要;对此表示抱歉): Windows XP,100%扩展,96 dpi->一切都像我期望的那样。 Windows XP,125%缩放,120 dpi->窗口底部的按钮不再适合窗口内部。
Using g = Me.CreateGraphics()
Dim dpiX = g.DpiX
Dim dpiY = g.DpiY
End Using
由于您使用的是Windows窗体,因此可以使用创建图形
对象
当然,最好的做法是使您的应用程序在任何DPI设置下都看起来很棒。如果您无法转到WPF,那么下面的问题包含了大量有关如何使用WinForms实现此功能的提示: