初始化时:InitializeComponent();intcount=this.Controls.Count*2+2;float[]factor=newfloat[count];inti=0;factor[i++]=Size.Width;factor[i++]=Size.Height;foreach(Controlctrlin...
初始化时:
InitializeComponent();
int count = this.Controls.Count * 2 + 2;
float[] factor = new float[count];
int i = 0;
factor[i++] = Size.Width;
factor[i++] = Size.Height;
foreach (Control ctrl in this.Controls)
{
factor[i++] = ctrl.Location.X / (float)Size.Width;
factor[i++] = ctrl.Location.Y / (float)Size.Height;
ctrl.Tag = ctrl.Size;
}
Tag = factor;
resize事件:
float[] scale = (float[])Tag;
int i = 2;
foreach (Control ctrl in this.Controls)
{
ctrl.Left = (int)(Size.Width * scale[i++]);
ctrl.Top = (int)(Size.Height * scale[i++]);
ctrl.Width = (int)(Size.Width / (float)scale[0] * ((Size)ctrl.Tag).Width);
ctrl.Height = (int)(Size.Height / (float)scale[1] * ((Size)ctrl.Tag).Height);
}
说明:百度知道离回答http://zhidao.baidu.com/question/421384385.html里有,不过没说清楚,不要说要用anchor和DOCK方法,不行。
展开