winform 中控件按分辨率 比例缩放
窗口初始化后:
点击查看代码
//获取窗口的大小,Tag随便保存的,也可以定义变量保存
this.Tag = this.Width.ToString() + "," + this.Height.ToString();
//这一步很重要,不能隐式的去生成这个事件,就是不能直接在属性栏里面双击自动生成,
//因为这个SizeChanged比获取窗口大小提前执行,不然会空引用异常。
//InitializeComponent(),组件初始化,这个必须先执行,会触发SizeChanged,窗体大小
this.SizeChanged += new EventHandler(Form1_SizeChanged);
Form1_SizeChanged事件
点击查看代码
public static void Form1_SizeChanged(object sender, EventArgs e)
{
//这一步不必多说
string[] tmp = ((Form)sender).Tag.ToString().Split(',');
//比例因子
float width = (float)((Form)sender).Width / (float)Convert.ToInt16(tmp[0]);
float heigth = (float)((Form)sender).Height / (float)Convert.ToInt16(tmp[1]);
//保存变化后的大小,下一次再根据这个求比例因子
((Form)sender).Tag = ((Form)sender).Width.ToString() + "," + ((Form)sender).Height;
//根据比例因子,重绘所有控件
foreach (Control control in ((Form)sender).Controls)
{
control.Scale(new SizeF(width, heigth));
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
2022-02-27 FastReport打印DataTable