C# winform适配高DPI
现在的屏幕大部分都是高分屏,在这样的屏幕下开发winform软件就需要注意高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