文档章节

C#(winform)为button添加背景图片,并去掉各种边框

_Somuns
 _Somuns
发布于 03/27 11:58
字数 790
阅读 46
收藏 0

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 进去(你只需要输入一个零就可以了,它会自动生成四个的了)

© 著作权归作者所有

_Somuns
粉丝 6
博文 428
码字总数 520415
作品 0
闵行
程序员
私信 提问
加载中

评论(0)

随笔导读 - 我的博客看这一篇就够了

《同步与异步系列》 .NET 同步与异步 之 EventWaitHandle(Event通知) (十三) .NET 同步与异步 之 Mutex (十二) .NET 同步与异步 之 线程安全的集合 (十一) .NET 同步与异步 之 警惕闭包...

把爱延续
2012/03/16
0
0
ImageButton和selector的使用,防止图片背景变形

Button继承自TextView,利用setBackgroundResources设置背景图片会变形,而ImageButton则继承自ImageView,利用setImageResources则不会变形,其效果是实现xml里src这个语句(因此叠加使用s...

fantasiter
2015/02/25
508
0
使用图片方式自定义iOS导航栏navigationItem的backBarButtonItem

http://blog.k-res.net/archives/1585.html 在做ViewControlller的navigationItem时,我们经常需要使用自定义的图片来替换系统默认的按钮样式,这点在对普通导航项,比如leftBarButtonItem或...

zql5666641
2014/12/21
0
0
使用图片方式自定义iOS导航栏navigationItem的backBarButtonItem

在做ViewControlller的navigationItem时,我们经常需要使用自定义的图片来替换系统默认的按钮样式,这点在对普通导航项,比如leftBarButtonItem或rightBarButtonItem来说还是比较简单的,通过...

04zhujunjie
2015/09/24
1.2K
0
C#问题,急,求解答

我在做winform窗体, 现在做一个主窗体,让他成为父窗体,让他有背景图,再搞一个button控件放张背景图, 让这个控件透明 只显示图片, 等我运行的时候 这个控件的背景颜色居然是父窗体的那个...

Beackbao
2013/04/03
254
4

没有更多内容

加载失败,请刷新页面

加载更多

基于 rsync 和 ln 实现“写时复制”的快照备份功能

一、基本原理 这里“写时复制”加了一个引号,因为这是专门针对使用rsync备份时的写时复制效果,而不是事实上的写时复制(copy-on-write),其达到的目的如下: 使用 rsync 备份数据后,立即...

Inpool
12分钟前
8
0
郑州哪哪里可以开工程款发票-郑州_新闻网

【电薇同步;1.3.8 - 2.7.4.1 - 5.2.9.7.】张生、诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug Bridge,是Android手机通用...

yyqqvip
今天
30
0
Nginx 反向代理访问

在Nginx 配置 server { listen 80; server_name www.xiaocx.org www.xiaocx.org www.xiaocx.org; root /Users/maison/work/xiaocx/dist; index i......

韩庚庚
今天
33
0
python笔记:环境变量已设置CMD中一直报错"python"不是内部命令,也不是可运行的程序或批处理文件

这些天虽然也写了几个小工具,但是打包都是在anaconda prompt中完成的,因为CMD中一直报错"python"不是内部命令,也不是可运行的程序或批处理文件,各种查度,千篇一律的是环境变量配置的问题...

小玲_001
今天
13
0
AI+BI服务模式

术语与缩写解释 缩写、术语 解 释 BI 商业智能(Business Intelligence,简称:BI),又称商业智慧或商务智能,指用现代数据仓库技术、线上分析处理技术、数据挖掘和数据展现技术进行数据分析...

zoegu228
今天
28
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部