现在的屏幕大部分都是高分屏,在这样的屏幕下开发winfrom软件就需要注意高DPI问题了

1.Form和UserControl的AutoScaleMode设置为Dpi

2.为项目添加应用程序清单文件(app.manifest),并取消下面行的注释

<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
</windowsSettings>
</application>

3.项目界面布局(界面随电脑分辨率自动适应) -- 如果界面是固定大小,不需要考虑该情况

(1)TableLayoutPanel:把区域划分成行和列,设置Anchor为Top|Bottom|Left|Right后,会随着窗口的大小自动调整单元格大小。

(2)FlowLayoutPanel:按照从左到右、从上到下的顺序排列子控件,设置Anchor后,会随着窗口大小变化重新布局。

(3)用控件的Anchor属性确定控件的定位方式,使控件可以与窗口某边界的位置固定或自动调整大小

(4)控件的Dock属性可以让子控件紧贴窗口边界或充满窗口。

4.如果是要填充满界面

this.WindowState = FormWindowState.Maximized

参考:

https://www.cnblogs.com/jizhiqiliao/p/10001181.html

https://bbs.csdn.net/topics/370264582

05-11 19:24