当按钮中的图像太大时如何缩放

问题描述 投票:0回答:2

首先,如果我的英语不好,我很抱歉。当我在 winform C# 中工作时,我想向按钮添加图像并将其设置在文本之前。但是,它太大了,我想将其缩小以使按钮更好 我的按钮

我想要的按钮

c# winforms button
2个回答
0
投票

您的问题是当按钮中的图像太大时如何缩放,使用标准 Winforms

Button
实现此目的的一种方法是使用
Bitmap(Image original, Size newSize)
构造函数将图像缩放到您想要的大小(基于按钮的大小)。然后您可以将其分配给
Button.Image
属性并设置图像和文本的位置。以下是原始文件夹图像为 256 x 256 的示例:

button with scaled image

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;
    }
}

确保可以找到图像文件的一种方法。

copy if newer


0
投票

子类按钮, 添加新的图像尺寸属性。 设置属性后,只需将图像大小调整为新大小即可。

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);
    }
}

这样我们仍然可以使用设计器

© www.soinside.com 2019 - 2024. All rights reserved.