我有一个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的指导。
答案 0 :(得分:2)
这个词确实有两种不同的用途:
显示设备的原始分辨率。这实际上有多少像素在2.54厘米之内。较大的值意味着更清晰,但总体上更小。
操作系统'缩放字体和小部件。例如,96 dpi是Windows的“原生”大小。也就是说,如果你的显示器也有96 dpi,那么控件就是你看它们时的尺寸。此外,字体的磅值也是正确的大小。如果您有一个显示器,例如120 dpi,并将操作系统设置为该测量值,然后将两者并排放置,您可以使用标尺进行测量,并在两种情况下查找小部件和字体的大小相同。
如今,如果您的眼睛无法使用太小的控件,那么第二项措施主要控制小部件的大小。如果你改变它,很多应用程序都会有正确显示的问题,尽管它远远好于Vista。
答案 1 :(得分:1)
每英寸点数与显示器/视频卡/分辨率有关,只表示长度单位(英寸)中显示的点数(或像素数)。
显然与操作系统无关,因为您可以在所有操作系统(Windows,Linux,Mac)中使用相同的值...
答案 2 :(得分:1)
DPI是每英寸点数,它是您可以在操作系统中设置的设置。但是,它是显示器的一个特征。
由于您使用的是Windows 7,要更改DPI设置,您可以执行以下操作:
只需更改它直到达到96 DPI(通常为100%)。
答案 3 :(得分:1)
Windows 7在“显示”属性中有一个名为“设置自定义文本大小(DPI)”的选项,如果将其设置为大于100%,则会影响元素在应用程序中的显示方式,并可能导致布局问题。我建议将其保持在100%,在Windows条件下为96 DPI。
注意:实际的DPI分辨率由显示器确定。