【发布时间】:2014-01-16 15:30:07
【问题描述】:
问题描述:
我目前正在开发一个 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 的原因之一
-
谢谢大家,我会看看 WPF 并考虑下一次更新。
-
我无法抗拒添加一些(未经询问且完全偏离主题)的 UI 建议:一个感叹号就足够了(您希望您的应用程序显得专业,而不是幼稚),文本应该在按钮中居中,“JETZT”之前的大空间看起来像一个显示错误,按钮标题应以大写字母开头(与屏幕截图左侧的 XP 对话框相比)。
-
感谢您的反馈 Heinzi。我故意编辑了图片,以便在此处发布“广告”。通常产品名称出现在您看到上面的空白处。为了澄清,我应该使用黑匣子。此外,蓝色图像框包含产品特定图像。因此,在应用程序本身中,文本以按钮为中心。但是,关于感叹号,您是对的!我会在下次更新时考虑这个问题。