C#ʵÏÖ´°ÌåÖеĸ÷¸ö¿Ø¼þͬ±È×Ô¶¯·ÅËõ´óС -µçÄÔ×ÊÁÏ

µçÄÔ×ÊÁÏ Ê±¼ä£º2019-01-01 ÎÒҪͶ¸å
¡¾www.unjs.com - µçÄÔ×ÊÁÏ¡¿

    ÕâÆªÎÄÕÂÖ÷Òª½éÉÜÁËC#ʵÏÖ´°ÌåÖеĸ÷¸ö¿Ø¼þͬ±È×Ô¶¯·ÅËõ´óС,ʵÏÖ·½Ê½Ö÷ÒªÊÇÀûÓÃpanel¿Ø¼þΪÖ÷Ìâ,¶ÔÓÚÿ¸ö¿Ø¼þµÄ´óСλÖúÍ×ÖÌåÕ⼸¸öÊôÐÔ½øÐмǼ,È»ºó¸ù¾Ý´°Ìå¸Ä±äµÄ´óСͬʱ·ÅËõ,ÐèÒªµÄÅóÓÑ¿ÉÒԲο¼ÏÂ

    ʵÏÖ·½Ê½Ö÷ÒªÊÇÀûÓÃpanel¿Ø¼þΪÖ÷Ì⣬¶ÔÓÚÿ¸ö¿Ø¼þµÄ´óСλÖúÍ×ÖÌåÕ⼸¸öÊôÐÔ½øÐмǼ£¬È»ºó¸ù¾Ý´°Ìå¸Ä±äµÄ´óСͬʱ·ÅËõ£¬

C#ʵÏÖ´°ÌåÖеĸ÷¸ö¿Ø¼þͬ±È×Ô¶¯·ÅËõ´óС

¡£

    ¼òÒª²½ÖèÈçÏ£º

    1¡¢´´½¨C#´°Ìå³ÌÐòÏîÄ¿¡£

    2¡¢Panel·ÅÖõ½´°Ìå¡£

    3¡¢ÉèÖÃÊôÐÔdockΪfill¡£

    4¡¢×¢ÒâMinnumSize²»ÄÜÉèÖÃΪ0£¬ ¸Ä³É´óÓÚ0¶¼ÐС£

    ´úÂëÈçÏÂ:

    public partial class FrmDemo : Form

    {

    double dFrmWidth;

    double dFrmHeight;

    double dZoomHorizon;

    double dZoomVerticality;

    Dictionary dicControlsAttribute = new Dictionary();

    protected void GetAllInitiateContrlInfo(Control CrlContainer)

    {

    if (CrlContainer.Parent == this)

    {

    dFrmWidth = Convert.ToDouble(CrlContainer.Width);

    dFrmHeight = Convert.ToDouble(CrlContainer.Height);

    }

    foreach (Control item in CrlContainer.Controls)

    {

    if (item.Name.Trim() != "")

    dicControlsAttribute.Add(item.Name, (item.Left + item.Width / 2) + "," + (item.Top + item.Height / 2)

    + "," + item.Width + "," + item.Height + "," + item.Font.Size);

    if ((item as UserControl) == null && item.Controls.Count > 0)

    GetAllInitiateContrlInfo(item);

    }

    }

    private void ChangeControlsInitiate(Control CrlContainer)

    {

    dZoomHorizon = (Convert.ToDouble(CrlContainer.Width) / dFrmWidth);

    dZoomVerticality = (Convert.ToDouble(CrlContainer.Height) / dFrmHeight);

    }

    private void ChangeCurrentControlAttr(Control CrlContainer)

    {

    double[] dPosition = new double[5];

    foreach (Control item in CrlContainer.Controls)

    {

    if (item.Name.Trim() != "")

    {

    if ((item as UserControl) == null && item.Controls.Count > 0)

    ChangeCurrentControlAttr(item);

    string[] strs = dicControlsAttribute[item.Name].Split(¡®,¡®);

    for (int j = 0; j < 5; j++)

    {

    dPosition[j] = Convert.ToDouble(strs[j]);

    }

    double itemWidth = dPosition[2] * dZoomHorizon;

    double itemHeight = dPosition[3] * dZoomVerticality;

    item.Left = Convert.ToInt32(dPosition[0] * dZoomHorizon - itemWidth / 2);

    item.Top = Convert.ToInt32(dPosition[1] * dZoomVerticality - itemHeight / 2);

    item.Width = Convert.ToInt32(itemWidth);

    item.Height = Convert.ToInt32(itemHeight);

    //item.Font = new Font(item.Font.Name, float.Parse

    //((dPosition[4] * Math.Min(dZoomHorizon, dZoomVerticality)).ToString()));

    //×ÖÌåÒ²¿ÉÒÔʵÏÖͬ±È·ÅËõ£¬

µçÄÔ×ÊÁÏ

¡¶C#ʵÏÖ´°ÌåÖеĸ÷¸ö¿Ø¼þͬ±È×Ô¶¯·ÅËõ´óС¡·(https://www.unjs.com)¡£

    }

    }

    }

    protected override void OnSizeChanged(EventArgs e)

    {

    base.OnSizeChanged(e);

    if (dicControlsAttribute.Count > 0)

    {

    ChangeControlsInitiate(this.Controls[0]);

    ChangeCurrentControlAttr(this.Controls[0]);

    }

    }

    public FrmDemo()

    {

    InitializeComponent();

    GetAllInitiateContrlInfo(this.Controls[0]);//¹¹Ô캯ÊýÀïÃæµ÷Óü´¿É¡£

    }

    }

    5¡¢Ð§¹û²âÊÔ

   

   

×îÐÂÎÄÕÂ