按钮图像边裁剪

时间:2015-11-16 13:34:25

标签: c# winforms

我试图将图像完美地贴合到按钮上。 但是图像在其右下表面被裁剪,请参阅附带的打印屏幕: enter image description here

我按如下方式编辑了按钮:

var l_oStopImage = Image.FromFile(@"C:\Users\AmitL\Downloads\Button-2-stop-icon72p.png");
var l_oStopPic = new Bitmap(l_oStopImage , new Size(btnStopOperation.Width, btnStopOperation.Height));
btnStopOperation.Image = l_oStopPic ;
btnStopOperation.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;

btnStopOperation.TabStop = false;
btnStopOperation.FlatStyle = FlatStyle.Flat;
btnStopOperation.FlatAppearance.BorderSize = 0;

我还尝试修改BackgroundImageLayout,但ImageLayouts都没有解决问题。

有什么建议吗? 提前致谢

2 个答案:

答案 0 :(得分:2)

backgroundimage

1 https://msdn.microsoft.com/en-us/library/system.windows.forms.imagelayout(v=vs.110).aspx

你应该使用stretch,我建议在设计时(这不是你需要通过代码添加元素的java):

            this.buttonOk.BackColor = System.Drawing.SystemColors.MenuHighlight;
            this.buttonOk.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("buttonOk.BackgroundImage")));
            this.buttonOk.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
            this.buttonOk.DialogResult = System.Windows.Forms.DialogResult.Cancel;
            this.buttonOk.Location = new System.Drawing.Point(475, 15);
            this.buttonOk.Name = "buttonOk";
            this.buttonOk.Size = new System.Drawing.Size(50, 50);
            this.buttonOk.TabIndex = 11;
            this.buttonOk.UseVisualStyleBackColor = false;
            this.buttonOk.Click += new System.EventHandler(this.buttonOk_Click);

它会起作用,在

之前完成很多次

我从我自己的Form1.Designer.cs中获取了这段代码,但正因为如此:请使用Visual Studio设计器,不要尝试在构造函数中编写所有这些代码/逻辑。

答案 1 :(得分:1)

问题是因为您显示的图像尺寸与按钮相同。

如果希望图像适合按钮,图像的宽度和高度应至少比按钮尺寸小1个点。 (或换句话说,您可以将按钮宽度和高度设置为比图像大小多1个点。)

因此,您可以将代码更改为:

var l_oStopPic = new Bitmap(l_oStopImage ,
    new Size(btnStopOperation.Width-1, btnStopOperation.Height-1));