您的问题是当按钮中的图像太大时如何缩放,使用标准 Winforms
Button
实现此目的的一种方法是使用 Bitmap(Image original, Size newSize)
构造函数将图像缩放到您想要的大小(基于按钮的大小)。然后您可以将其分配给 Button.Image
属性并设置图像和文本的位置。以下是原始文件夹图像为 256 x 256 的示例:
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
initButton();
}
private void initButton()
{
string path = Path.Combine(
AppDomain.CurrentDomain.BaseDirectory,
"Images",
"folder.png");
int square = buttonWithImage.Height - 4;
Image resizedImage =
new Bitmap(
Bitmap.FromFile(path),
new Size(square, square));
buttonWithImage.Image = resizedImage;
buttonWithImage.ImageAlign = ContentAlignment.MiddleLeft;
buttonWithImage.TextAlign = ContentAlignment.MiddleRight;
}
}
确保可以找到图像文件的一种方法。
子类按钮, 添加新的图像尺寸属性。 设置属性后,只需将图像大小调整为新大小即可。
public class ImageButton : Button
{
private int _imageSize = 16;
public int ImageSize { get => _imageSize; set { _iconSize = value; updateImage(); }}
private void updateImage()
{
if( Image == null || Image.Height == _imageSize ) return;
Image = new Bitmap(Image, new Size(_imageSize, _imageSize);
}
}
这样我们仍然可以使用设计器