摘要:[C#](纯Winform)让UI适应不同分辨率
这是一项非常大的困扰,所以我把我找来的知识全部做个整理。
特别是针对Winform的部分,若是WPF建议使用ViewBox并且设定适合的模式。
大致的概念是这样:
Step 1: 将你的UI先固定大小,但实际操作还是依个人以及美工的复杂度(图片越复杂就要小心所谓的作用范围问题,以免图片重叠等等),像有的时候Label需要用AutoSize=true,有的则是false。
Step2:用程序取得现在的分辨率(显示器)
Step3:依照公式:你的UI大小除以现在的分辨率,来做UI的调整。
调整时要记得不只是大小改变,位置也要改变!
若是在容器里就用for抓每个组件,若容器里还有容器,则用递归的方式做处理。
范例以容器为Panel为例:string sHeight = SystemInformation.PrimaryMonitorSize.Height.ToString();
string sWidth = SystemInformation.PrimaryMonitorSize.Width.ToString();
double sw = Convert.ToDouble(sWidth);
double sh = Convert.ToDouble(sHeight);
double sizeX = sw / 1024;
double sizeY = sh / 768;
foreach (Control p in panel1.Controls)
<