有人可以用非专业术语解释DPI分辨率是什么,以及它是否是监视器或操作系统的特征

时间:2011-08-28 22:42:22

标签: c# .net windows winforms resolution

我有一个Winforms应用程序,可以在各种版本的Windows和各种分辨率上正常工作。但是,当应用程序在Motion CL900平板电脑上运行时,布局完全混乱;主要由面板控件引起的,这些面板控件在其他计算机上尺寸完美,现在太小而导致滚动条。 Motion设备运行的是Windows 7 Professional。

我已经阅读了有关stackoverflow的一些帖子,Windows机器的标准DPI为96,但该设备显然不是96 DPI。事实上,这个设备是“非标准”的结果是它的屏幕还是由它的Windows 7的OEM版本设置引起的?我已经读过我必须为我的表单设置AutoScalingDimensions以反映我正在开发的PC的DPI。但是,我怎么知道我正在开发的DPI我的机器/屏幕是什么?

我的设计器文件中有以下内容用于包含布局问题的表单:

this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;

我很感激任何有过各种DPI解决方案的Winforms工作经验的人都会对这个问题有所了解,并且可能会为.Net开发人员提供一些如何成功处理非标准DPI的指导。

4 个答案:

答案 0 :(得分:2)

这个词确实有两种不同的用途:

  1. 显示设备的原始分辨率。这实际上有多少像素在2.54厘米之内。较大的值意味着更清晰,但总体上更小。

  2. 操作系统'缩放字体和小部件。例如,96 dpi是Windows的“原生”大小。也就是说,如果你的显示器也有96 dpi,那么控件就是你看它们时的尺寸。此外,字体的磅值也是正确的大小。如果您有一个显示器,例如120 dpi,并将操作系统设置为该测量值,然后将两者并排放置,您可以使用标尺进行测量,并在两种情况下查找小部件和字体的大小相同。

  3. 如今,如果您的眼睛无法使用太小的控件,那么第二项措施主要控制小部件的大小。如果你改变它,很多应用程序都会有正确显示的问题,尽管它远远好于Vista。

答案 1 :(得分:1)

每英寸点数与显示器/视频卡/分辨率有关,只表示长度单位(英寸)中显示的点数(或像素数)。

显然与操作系统无关,因为您可以在所有操作系统(Windows,Linux,Mac)中使用相同的值...

答案 2 :(得分:1)

DPI是每英寸点数,它是您可以在操作系统中设置的设置。但是,它是显示器的一个特征。

由于您使用的是Windows 7,要更改DPI设置,您可以执行以下操作:

  1. 控制面板
  2. 外观和个性化
  3. 显示
  4. 设置自定义文字大小(DPI) - (在侧栏上)
  5. 只需更改它直到达到96 DPI(通常为100%)。

答案 3 :(得分:1)

Windows 7在“显示”属性中有一个名为“设置自定义文本大小(DPI)”的选项,如果将其设置为大于100%,则会影响元素在应用程序中的显示方式,并可能导致布局问题。我建议将其保持在100%,在Windows条件下为96 DPI。

注意:实际的DPI分辨率由显示器确定。