winform适应不同的分辨率_C# winform中 窗体缩放自适应的方法(不同电脑/不同分辨率)...

本文介绍了如何解决C# WinForm窗体在不同分辨率下自适应缩放的问题。通过创建一个Panel容器,设置控件的初始化信息,以及在窗体尺寸改变时动态调整控件大小,实现了窗体的自由缩放。关键步骤包括获取控件初始信息、计算缩放比例以及响应窗体尺寸变化事件。
摘要由CSDN通过智能技术生成

窗体缩放是一个困扰我多时的问题,为了解决这个问题,我从网上找了很多相关的资料,很多人说用Anchor和Dock属性,但是我试了以后,始终不能达到想要的效果。

后来,搜到了一个帖子,终于解决了这个问题,再次对该贴作者表示感谢。原帖链接为:

以下是笔者的实现过程:

1.  首先在窗体上放上一个Panel容器,并将容器的Dock属性设为Fill,即所有的控件都放在了这个容器里。

2. 设置缩放窗体时需要用到的变量:

#region 控件缩放

double formWidth;//窗体原始宽度

double formHeight;//窗体原始高度

double scaleX;//水平缩放比例

double scaleY;//垂直缩放比例

Dictionary ControlsInfo = new Dictionary();//控件中心Left,Top,控件Width,控件Height,控件字体Size

#endregion

3.  自定义几个方法,用以实现(1)获取控件初始信息;GetAllInitInfo()

(2)获取窗体缩放比例;ControlsChaneInit()

(3)窗体改变时修改控件大小。ControlsChange()

protected void GetAllInitInfo(Control ctrlContainer)

{

if (ctrlContainer.Parent == this)//获取窗体的高度和宽度

{

formWidth = Convert.ToDo

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值