我试图用鼠标调整控件的大小,按住左键+ Shift键,希望宽度和高度都按比例调整(就像在Photoshop中一样)。没用。
我用谷歌搜索了解如何做到这一点,确定我在一分钟内得到答案。令我惊讶的是我找不到任何东西。
我必须明白Visual Studio,即使是2013版本,也缺乏这个非常基本的设计功能吗?!或者我只是一直想念它?
请注意,这不仅适用于特定控件;它是一个设计工具,我想用于任何可以在表单/用户控件上“绘制”的东西。
答案 0 :(得分:2)
您可以随时扩展您想要保持比例的控件:
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'以使其适当调整大小。
如果你需要它来处理许多不同的控件,这个解决方案可能会非常艰巨。