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 進去(你只需要輸入一個零就可以了,它會自動生成四個的了),哈哈,發現問題居然解決了。···汗