我试图将图像完美地贴合到按钮上。 但是图像在其右下表面被裁剪,请参阅附带的打印屏幕:
我按如下方式编辑了按钮:
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
都没有解决问题。
有什么建议吗? 提前致谢
答案 0 :(得分:2)
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));