问题描述:是否有可能对用户的DPI设置反应在.NET应用程序
我目前正在开发一个Visual Basic .NET应用程序。事实证明,我的应用程序在以不同于“标准”的不同dpi设置运行的系统上无法正常显示(windows xp下100%= 96dpi)。
当我change the system's dpi settings我的GUI看起来稍微搞砸了,你可以在下面的截图看到(因为这是一个规模问题是不应该的问题,关于截图的文字是德语;遗憾的这个):
Windows XP,100%比例,96 dpi - >一切看起来像我期望的。
Windows XP,125%缩放,120 dpi - >窗口底部的按钮不再适合窗口。
我想达到的目标:
如果显示比例设置为任何大于100%,否则我想尽快在应用程序启动用户显示一个警告对话框。
问:
是否有可能读取系统的DPI值?如果是这样,那会是怎样呢? 似乎有一个DisplayProperties-class以及DisplayInformation-class,但据我所见,它仅适用于Windows-Store-Apps。
解决方法:使用WPF,它是独立于默认分辨率。 winforms不支持任何东西。 –
@HighCore是正确的。这是WPF首先创建的原因之一 – Zache
谢谢你们,我会看看WPF并考虑下一次更新。 – Christian