如何在调整窗体和按钮大小的同时,保持按钮为正方形?
我有一个表单,里面有一个按钮,按钮的背景图片是98×98。随着表单高度的增加,我希望按钮的高度也随之增加,但我希望按钮保持正方形以维持图片的纵横比。如果调整表单的宽度,我不希望按钮的尺寸改变。
我一直在尝试使用Panel、Anchor、Dock和 Autosize,但没有得到预期的结果。
解决方案
您可以覆盖 Button 的 GetPreferredSize 方法,例如:
private class Button3 : Button {
public Button3() {
this.AutoSize = true;
this.AutoSizeMode = AutoSizeMode.GrowAndShrink;
this.Text = " ";
}
public override Size GetPreferredSize(Size proposedSize) {
Image img = this.BackgroundImage;
if (img != null) {
Size sz = img.Size;
sz.Width += 5;
sz.Height += 5;
return sz;
}
Size sz2 = base.GetPreferredSize(proposedSize);
int w = Math.Max(40, sz2.Width);
sz2.Width = w;
sz2.Height = w;
return sz2;
}
}
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。