1. 程式人生 > >C#(winform)為button新增背景圖片,並去掉各種邊框

C#(winform)為button新增背景圖片,並去掉各種邊框

 

1.既然是新增背景圖片

    所以這裡應該使用 Button.BackgroudImage = "" ;來設定圖片

         而不應該使用  Button.Image = ""; 

   因為使用BackgroudImage來設定背景圖片,我們還可以使用

    BackgroundImageLayout來調節圖片,讓圖片更好的顯示在button上

    通常使用:

1 this.btnReset.BackgroundImage = global::Test.Properties.Resources.btn_reset_out;//設定圖片的路徑
2             this.btnReset.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;//設定圖片的顯示模式,Stretch表示填滿button,如果圖片不夠button大,就會拉伸圖片

2.然後你就會看到儘管添加了背景圖片,同時還設定好了拉伸圖片,但是效果還是強差人意

   

   怎麼會有個邊框啊,這得有多難看啊,既然有邊框,那就取消邊框吧

   

     不過,沒找到button的Border屬性,但是找到了 FlatStyle屬性(決定控制元件外觀的一個屬性),

     不管了,先逐個試試看有什麼變化,最後Flat感覺比較符合我們的口味,

       

     那個給人感覺很厚的邊框沒有了,但是看起來仍然很不舒服,怎麼還有一點白色的框框啊

     

     剛才一直找不到的Border屬性,原來是藏在了 FlatAppearance下面了,直接BorderSize改成 0

     效果馬上變成了如下:

        

      呵呵,那討人厭的白色框框也不見了,整體看起來感覺舒服了好多啊,

     不過細心的你肯定也看到了,因為這個按鈕的背景圖片是圓角的,那四個邊角上居然還有

     那冤魂不散的白色邊框!!!!,執行起來的效果更明顯,特別是當滑鼠移進移出時:

      and 

     左圖是滑鼠移入前,看起來很舒服;而右圖是滑鼠移進時,擦,四個邊角,這太明顯了,強迫症的我根本不能接受嘛!

     從一開始到現在折騰了那麼久,眼看就要搞定的時候,居然還有這麼一個小難題····難不成是微軟的bug???

     最後發現還是我錯了,解決的方法如下:

  

     還是在剛剛那個 FlatAppearance屬性,不過這次改的是 MouseDownBackColor,MouseOverBackColor 都設定為 Transparent(透明色)

     當然最後還要設定一下

     this.btnReset.BackColor = System.Drawing.Color.Transparent;

          補充:

     當最後你執行時,你會發現當點選button時,還是會出現一個白色的邊框,這個據說是button失去焦點時的表現,

     這貨還真是對我依依不捨,吃了幾十片毓婷都打不掉啊,如圖:

     

      很噁心,最後的解決方法還是修改那個屬性,FlatAppearance:

      

       就是BorderColor惹的貨,一開始我打算把它改成跟按鈕一樣的顏色就算了,這樣大概能夠渾水摸魚,或者濫竽充充數

       然後一個不小心,敲了一個 0 進去(你只需要輸入一個零就可以了,它會自動生成四個的了),哈哈,發現問題居然解決了。···汗

    所以這裡應該使用 Button.BackgroudImage = "" ;來設定圖片

         而不應該使用  Button.Image = ""; 

   因為使用BackgroudImage來設定背景圖片,我們還可以使用

    BackgroundImageLayout來調節圖片,讓圖片更好的顯示在button上

    通常使用:

1 this.btnReset.BackgroundImage = global::Test.Properties.Resources.btn_reset_out;//設定圖片的路徑
2             this.btnReset.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;//設定圖片的顯示模式,Stretch表示填滿button,如果圖片不夠button大,就會拉伸圖片

2.然後你就會看到儘管添加了背景圖片,同時還設定好了拉伸圖片,但是效果還是強差人意

   

   怎麼會有個邊框啊,這得有多難看啊,既然有邊框,那就取消邊框吧

   

     不過,沒找到button的Border屬性,但是找到了 FlatStyle屬性(決定控制元件外觀的一個屬性),

     不管了,先逐個試試看有什麼變化,最後Flat感覺比較符合我們的口味,

       

     那個給人感覺很厚的邊框沒有了,但是看起來仍然很不舒服,怎麼還有一點白色的框框啊

     

     剛才一直找不到的Border屬性,原來是藏在了 FlatAppearance下面了,直接BorderSize改成 0

     效果馬上變成了如下:

        

      呵呵,那討人厭的白色框框也不見了,整體看起來感覺舒服了好多啊,

     不過細心的你肯定也看到了,因為這個按鈕的背景圖片是圓角的,那四個邊角上居然還有

     那冤魂不散的白色邊框!!!!,執行起來的效果更明顯,特別是當滑鼠移進移出時:

      and 

     左圖是滑鼠移入前,看起來很舒服;而右圖是滑鼠移進時,擦,四個邊角,這太明顯了,強迫症的我根本不能接受嘛!

     從一開始到現在折騰了那麼久,眼看就要搞定的時候,居然還有這麼一個小難題····難不成是微軟的bug???

     最後發現還是我錯了,解決的方法如下:

  

     還是在剛剛那個 FlatAppearance屬性,不過這次改的是 MouseDownBackColor,MouseOverBackColor 都設定為 Transparent(透明色)

     當然最後還要設定一下

     this.btnReset.BackColor = System.Drawing.Color.Transparent;

          補充:

     當最後你執行時,你會發現當點選button時,還是會出現一個白色的邊框,這個據說是button失去焦點時的表現,

     這貨還真是對我依依不捨,吃了幾十片毓婷都打不掉啊,如圖:

     

      很噁心,最後的解決方法還是修改那個屬性,FlatAppearance:

      

       就是BorderColor惹的貨,一開始我打算把它改成跟按鈕一樣的顏色就算了,這樣大概能夠渾水摸魚,或者濫竽充充數

       然後一個不小心,敲了一個 0 進去(你只需要輸入一個零就可以了,它會自動生成四個的了),哈哈,發現問題居然解決了。···汗