麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > MongoDB > 正文

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

2020-10-29 18:52:38
字體:
來源:轉載
供稿:網友

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

簡要步驟如下:

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<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())); 
                    //字體也可以實現同比放縮。 
                     } 
            } 
        } 
        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、效果測試

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄色av网站免费 | 777zyz色资源站在线观看 | 98色视频| 性少妇chinesevideo | 一级黄色毛片子 | 国产精品久久久久久久午夜片 | 欧美wwwsss9999 | 91久久夜色精品国产网站 | 91性高湖久久久久久久久网站 | 欧美.com| 成人午夜毛片 | 国产一级毛片国语版 | 国产电影精品久久 | 欧美精品v国产精品v日韩精品 | 欧美成人精品一区二区 | 日韩a毛片免费观看 | 国内免费视频成人精品 | 宅男噜噜噜66一区二区 | 一区二区三区小视频 | 国产精品视频一区二区三区四区国 | 免费观看9x视频网站在线观看 | 久久久国产精品免费观看 | 成人精品aaaa网站 | 日本在线看| 黄色片网站免费观看 | 国产精品剧情一区二区三区 | 最新中文字幕第一页视频 | 男女无遮挡羞羞视频 | av成人免费看 | 成人免费国产 | 在线免费观看欧美 | 嫩呦国产一区二区三区av | 亚洲最大中文字幕 | 亚洲成人在线免费观看 | 欧美人的天堂一区二区三区 | 欧美精品激情视频 | 国产在线一级片 | 欧美一级黄色免费看 | 欧美不卡在线 | 亚洲综合精品成人 | 91精品国产免费久久 |