将自动调整图像的ImageButton

Kov*_*ovu 1 .net c# button

我正在寻找一个按钮控件来显示AutoSize它的图像.普通按钮控件不会这样做.我正在使用C#.Net 2.0.

例如,我有一个200 x 50px的Button和一个800 x 100px的图像.我想调整图像的大小,使其在按钮文本附近向左一点.随着PictureBox我可以做到这一点.但是,当我躺在一个PictureBoxButton它的非常难看,因为你不能点击那里.

Mic*_*ber 5

你可以这样做:

button.Image = Image.FromFile(path);
button.AutoSize = true;
Run Code Online (Sandbox Code Playgroud)

例如:或者,您可以创建一个新的Button类型来改变图像的大小:

public class AutoSizeButton : Button
{

    public new Image Image
    {
        get { return base.Image; }
        set 
        {
            Image newImage = new Bitmap(Width, Height);
            using (Graphics g = Graphics.FromImage(newImage))
            {
                g.DrawImage(value, 0, 0, Width, Height);
            }
            base.Image = newImage;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

测试:

AutoSizeButton button = new AutoSizeButton();
button.Location = new Point(27, 52);
button.Name = "button";
button.Size = new Size(75, 23);
button.Text = "Test";
button.UseVisualStyleBackColor = true;
button.Image = Image.FromFile(path);
Controls.Add(button);
Run Code Online (Sandbox Code Playgroud)