加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何在WinForm的控件设计器中使用鼠标按比例调整控件的大

发布时间:2020-12-15 22:07:51 所属栏目:百科 来源:网络整理
导读:我试图用鼠标调整控件的大小,按住左键Shift,希望宽度和高度都按比例调整(如在Photoshop中).没工作. 我用Google搜索了解如何做到这一点,确定我在一分钟内得到答案.令我惊讶的是我找不到任何东西. 我必须明白Visual Studio,即使是2013版本,也缺乏这个非常基本
我试图用鼠标调整控件的大小,按住左键Shift,希望宽度和高度都按比例调整(如在Photoshop中).没工作.

我用Google搜索了解如何做到这一点,确定我在一分钟内得到答案.令我惊讶的是我找不到任何东西.

我必须明白Visual Studio,即使是2013版本,也缺乏这个非常基本的设计功能吗?!或者我只是一直想念它?

请注意,这不仅适用于特定控件;它是一个设计工具,我想用于任何可以在表单/用户控件上“绘制”的东西.

解决方法

您可以随时扩展您想要保持的比例:

public class Panelx : Panel {

    private int _width;
    private int _height;
    private double _proportion;
    private bool _changingSize;

    [DefaultValue(false)]
    public bool MaintainRatio { get; set; }

    public Panelx() {
        MaintainRatio = false;
        _width = this.Width;
        _height = this.Height;
        _proportion = (double)_height / (double)_width;
        _changingSize = false;
    }

    protected override void OnResize(EventArgs eventargs) {
        if (MaintainRatio == true) {
            if (_changingSize == false) {
                _changingSize = true;
                try {
                    if (this.Width != _width) {
                        this.Height = (int)(this.Width * _proportion);
                        _width = this.Width;
                    };
                    if (this.Height != _height) {
                        this.Width = (int)(this.Height / _proportion);
                        _height = this.Height;
                    };
                }
                finally {
                    _changingSize = false;
                }
            }
        }
        base.OnResize(eventargs);
    }

}

然后,您需要做的就是将MaintainRatio属性设置为’true’以使其适当调整大小.

但是,如果您需要它来处理许多不同的控件,这个解决方案可能会非常艰巨.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读