DPI缩放的简便方法?

3
所以我现在已经编写了一个程序超过一个月,但我遇到了一个问题,我不知道该如何解决。一段时间以来,每当我在其他电脑上打开我的程序时,我的窗口大小就会不同,我认为这是分辨率不同造成的,我认为这个问题以后很容易解决。然后我导入了自定义字体到我的程序中,发现字母不清晰且模糊。我认为这是因为我使用的特定字体大小引起的,所以将其保持原样。然而,今天在做一些测试时,我很烦恼字母模糊,于是我上网搜索问题和解决方案,结果发现我的问题在DPI设置上(大多数情况下我在计算机上设置为125%)。
我不知道该怎么办。我刚开始学编程,弄明白如何让自定义文本工作已经很困难了,但我真的不知道该怎么做了。
我一直在使用Visual Studio C# 2010编写此程序,因为它是我唯一拥有且不会过期的版本,所以我不能使用可能存在于2011或2012版本中的任何内容。
我只想让对象在具有不同DPI的另一台计算机上处于相同的位置。是否有非常简单的逐步教程可以阅读或观看以找到解决方法?

嗯,不对,当操作系统接管缩放而不是让应用程序自行处理时,会出现模糊的文本。这种情况发生在大于125%的值上。自定义字体很少有良好的提示,往往不支持ClearType,并且只在大号字体大小下看起来好看。避免使用免费软件,来自知名字体铸造厂的好字体需要花钱购买。 - Hans Passant
相关链接:https://dev59.com/ymEh5IYBdhLWcg3wKgqg - Denise Skidmore
1
对于一些较新的工具,Visual Studio Community 2013是免费的:https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx - Sami Kuhmonen
1个回答

2

这段代码片段对我来说非常完美。

http://urenjoy.blogspot.it/2008/11/make-resolution-independent-windows-app.html

(使用Visual Studio Express 2013)

要求窗口应用程序在不同的分辨率下具有相同的布局,也就是说,在更改分辨率时不应该影响应用程序的布局。以下是实现此目标的步骤:

  • 使用表格布局面板
  • 将控件拖到表格布局面板的单元格中,并设置锚定和停靠属性。
  • 设置被拖动控件的rowspan和colspan属性以合并单元格
  • 根据单元格设置拖动控件的margin和padding。
  • 拖动所有控件并按照相同的步骤进行,使用表格布局面板完成设计
  • 现在将tablelayoutpanel的所有列和行大小设置为自动调整大小(或以%为单位)
  • 设置tablelayoutpanel属性autosize = true,autosizemode = grow and shrink
  • 设置Forms属性autosize = true,autosizemode = grow and shrink
  • 运行Windows应用程序,如果您的Windows应用程序以最大化状态打开,则设置tablelayoutpanel dock属性=填充。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接