自写的C#等比例缩放式布局管理器

本文介绍了作者在使用C#开发时发现缺少内置布局管理器的情况,从而自行实现了一个等比例缩放的布局管理方案。通过记录控件初始位置和大小的比例,再在窗口resize事件中重新计算布局,简化了手动调整的工作。作者分享了这一实现思路,并期望得到同行的指导和推荐相关布局管理器的文章。
摘要由CSDN通过智能技术生成

  因为一直用高级语言开发,或者说不怎么开发,不怎么关心细节,一直以为布局管理是理所当然已经做好了


    因为一直用高级语言开发,或者说不怎么开发,不怎么关心细节,一直以为布局管理是理所当然已经做好了
没想到用到高级的C#以后居然是没有布局管理的.....

真的是不理解个中原因哦,那位达人谈古论今娓娓道来一下?

然后我们就要自己做布局管理了,我能想到的也就是等比例缩放了....难不成要计算记录每个控件的位置大小及比例头大啊.....

我不是勤快的人,我其实满勤快. 后来想到一个办法就是界面初始化以后用一个datatable记录所有控件的初始位置及大小的比例,然后在resize事件里面再重新计算

呵呵,这个办法应该是一般懒人都都能想到的啦.

不过,我这已经把代码写好了,非常乐意与菜鸟共享一下.呵呵.欢迎大家提出指导意见.如果有看到系统介绍布局管理器的好文章也麻烦给我推荐推荐,不胜感激哦

写成了一个单独的类,LayoutControler,使用的时候只要在主界面的构造函数里初始化一个实例,然后再调用layout函数把当前界面传过去就可以了.用起来相当简单吧. 另外这个对button,label等单行的控件是没有等比放大它的高度的,放大了有点怪啦.

好了,上伪代码.....(因为公司不能上外网,拷个东西出来还层层审理....)

循环一遍传递过来的控件包含的controls,如果控件的controls.count大于0,递归;否则记录其位置及大小的比例

调用和定义resize 事件, 响应函数里根据控件名称找到对应的 table,根据table里面的记录的值重算大小等

伪代码的不继续写了,以后再拷出来贴.....如果有人搭理的话....

 

class  LayoutControler {

private datataset layout;

public LayoutControler()

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值