![](/img/trans.png)
[英]What's the preferred method for storing user settings in a .NET windows application?
[英]Is it possible to react to user's dpi settings in a .NET application
问题描述:
我目前正在开发Visual Basic .NET应用程序。 事实证明,我的应用程序无法在运行不同于“标准”的dpi设置的系统上正常显示(在Windows XP下为100%= 96dpi)。
当我更改系统的dpi设置时,我的GUI看起来有点混乱,你可以在下面的截图中看到(因为这是一个扩展问题,屏幕截图上的文字是德语的;不好意思):
Windows XP,100%规模,96 dpi - >一切看起来像我期望的那样。
Windows XP,125%缩放比例,120 dpi - >窗口底部的按钮不再适合窗口内部。
我想要实现的目标:
如果显示比例设置为100%以外的任何值,我想在应用程序启动时立即向用户显示一个警告对话框。
题:
有没有可能读取系统的dpi值? 如果是这样,那将是怎样的? 似乎有一个DisplayProperties类和DisplayInformation类 ,但据我所知它只适用于Windows-Store-Apps。
Using g = Me.CreateGraphics()
Dim dpiX = g.DpiX
Dim dpiY = g.DpiY
End Using
由于您使用的是Windows窗体,因此可以使用Form.CreateGraphics创建Graphics
对象。
当然,最好的做法是让您的应用程序在任何 DPI设置上都看起来很棒。 如果你不能转移到WPF,下面的SO问题包含很多关于如何使用WinForms工作的提示:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.