窗体改变大小时,控件和字体如何按比例缩放。Anchor,和Dock属性我知道。网上有关于这方面的,http://www.codeproject.com/KB/dialog/SizingDialog.aspx,但是是C++的,我看不懂啊,汗或是哪位帮着写成C#的

解决方案 »

  1.   

    虽然不知道这么做有什么意义,但是给你个思路:首先你要知道 Dictionary 是什么、foreach怎么用,什么是函数递归。你可以在窗体初始化之后使用一个dictionary保存当前窗口所有控件相对于窗体位置的比例:
    比如 Control.Top / this.Height 或者 Control.Left / this.Width,按照名字/比例保存好。然后在Form_Resize里面为每个控件计算新的比例,然后Move之。遍历控件可以递归Control的Controls属性。或者,使用TableLayoutPanel,然后每个控件设置为DockStyle.Fill,填充一个单元格,TableLayoutPanel则充满整个窗口。