using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using AntdUI; namespace DHSoftware.Utils { public static class AdaptiveHelper { #region 控件大小随窗体大小等比例缩放 public static void setTag(Control cons) { foreach (Control con in cons.Controls) { con.Tag = con.Width + ";" + con.Height + ";" + con.Left + ";" + con.Top + ";" + con.Font.Size; if (con.Controls.Count > 0) setTag(con); } } public static void setControls(float newx, float newy, Control cons) { //遍历窗体中的控件,重新设置控件的值 foreach (Control con in cons.Controls) //获取控件的Tag属性值,并分割后存储字符串数组 if (con.Tag != null) { var mytag = con.Tag.ToString().Split(';'); //根据窗体缩放的比例确定控件的值 con.Width = Convert.ToInt32(Convert.ToSingle(mytag[0]) * newx); //宽度 con.Height = Convert.ToInt32(Convert.ToSingle(mytag[1]) * newy); //高度 con.Left = Convert.ToInt32(Convert.ToSingle(mytag[2]) * newx); //左边距 con.Top = Convert.ToInt32(Convert.ToSingle(mytag[3]) * newy); //顶边距 var currentSize = Convert.ToSingle(mytag[4]) * newy; //字体大小 if (currentSize > 0) con.Font = new Font(con.Font.Name, currentSize, con.Font.Style, con.Font.Unit); con.Focus(); if (con.Controls.Count > 0) setControls(newx, newy, con); } } #endregion } }