2015-11-16 39 views
1

我正在嘗試將圖像合適地放到按鈕上。 但圖像裁剪在其右側面和底面,見附件打印屏幕: 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的修復了這個問題..

有什麼建議嗎? 在此先感謝

+0

是您的按鈕'width'和'height'與您的圖像的寬度和高度? –

+0

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

+0

不,我甚至沒有檢查過它的尺寸我認爲它應該適合到按鈕的尺寸.. –

回答

1

backgroundimage

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

你應該使用拉伸,我在設計時建議(這是不是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));