a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 數(shù)據(jù)庫 > MongoDB > 正文

C#實現(xiàn)窗體中的各個控件同比自動放縮大小

2020-10-29 18:52:38
字體:
供稿:網(wǎng)友

實現(xiàn)方式主要是利用panel控件為主題,對于每個控件的大小位置和字體這幾個屬性進行記錄,然后根據(jù)窗體改變的大小同時放縮。

簡要步驟如下:

1、創(chuàng)建C#窗體程序項目。
2、Panel放置到窗體。
3、設(shè)置屬性dock為fill。
4、注意MinnumSize不能設(shè)置為0, 改成大于0都行。

復(fù)制代碼 代碼如下:

public partial class FrmDemo : Form 
    { 
        double dFrmWidth; 
        double dFrmHeight; 
        double dZoomHorizon; 
        double dZoomVerticality; 
        Dictionary<string, string> dicControlsAttribute = new Dictionary<string, string>(); 
 
        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())); 
                    //字體也可以實現(xiàn)同比放縮。 
                     } 
            } 
        } 
        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]);//構(gòu)造函數(shù)里面調(diào)用即可。 
        } 
}

5、效果測試

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 精品久久中文字幕 | 欧美日韩亚洲一区 | 成人高清视频在线观看 | 在线亚洲精品 | 日韩在线成人 | 外国一级a毛片 | 国产一区二区三区免费观看 | 日本一级二级三级久久久 | 国产成人免费 | 91精品国产91久久久久久蜜臀 | 精品一区二区在线观看 | 成人午夜av | 欧美国产高清 | 四虎入口| 91一区| 欧美成人手机在线视频 | 久久骚 | 亚洲wuma| 狠狠色综合网站久久久久久久 | 国产精品中文字幕一区二区三区 | 美日韩免费视频 | 91精品国产一区二区 | 欧美性猛交一区二区三区精品 | 91视频网 | 精品国产一区二区三区成人影院 | 国产精品久久av | 国产精品成人一区二区 | 国产91精品一区二区绿帽 | 国产精品免费视频一区 | 成人精品鲁一区一区二区 | 99久久日韩精品视频免费在线观看 | 色婷婷国产精品 | 亚洲精品一区二区三区在线看 | 亚洲精品在线免费看 | 亚洲蜜桃精久久久久久久 | 久久久久久电影 | 夜夜久久 | 国产午夜小视频 | 国产精品一级在线观看 | 中文字幕在线看片 | 黄色国产一级视频 |