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;

时间: 2024-08-05 23:40:56

C#(winform)为button添加背景图片的相关文章

WPF之路二 button添加背景图片点击后图片闪烁问题

在为button添加背景图片的时候,点击后发现图片闪烁,我们仔细观察,其实Button不仅仅只是在点击后会闪烁,在其通过点击或按Tab键获得焦点后都会闪烁,而通过点击其他按钮或通过按Tab键让Button失去焦点后就不闪烁了.如此我们可以推测出这不是点击或其他什么的问题而是焦点的问题,那么我们只要设置Button的Focusable属性为False就行了. 网上给的答案是要在button属性设置Focusable="False" ,无奈找属性栏里没有找到Focusable,于是在代码里

MFC添加背景图片

1.在资源里导入一个bmp图片假设名称为IDB_BITMAP1 实现OnPaint方法 CPaintDC dc(this); CRect rect; GetClientRect(&rect); CDC dcMem; dcMem.CreateCompatibleDC(&dc); CBitmap bmpBackground; bmpBackground.LoadBitmap(IDB_BITMAP1); //IDB_BITMAP是你自己的图对应的ID BITMAP bitmap; bmpBack

导航链接添加背景图片替换样式

HTMl代码: <div class="welcome_button"> <ul> <li><a href="#">signup</a></li> <li><a href="#">login</a></li> </ul> </div> CSS样式: <style type="text/cs

swing-窗体添加背景图片的2种方法

在美化程序时,常常需要在窗体上添加背景图片.通过搜索和测试,发现了2种有效方式.下面分别介绍.1.利用JLabel加载图片利用JLabel自带的setIcon(Icon icon)加载icon,并设置JLabel对象的位置和大小使其完全覆盖窗体.这是一个很取巧的办法,代码非常简单,如下所示. JLabel lbBg = new JLabel(imageIcon); lbBg.setBounds(0, 0, frameSize.width, frameSize.height); this.getC

Java怎么添加背景图片

首先,导入相关的包: import java.awt.BorderLayout; import java.awt.Container; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; 也可以用: import java.awt.*: import javax.swing.*: 接着,创建一个Java窗体对象,并设置为可见 e

如何在使用itext生成pdf文档时给文档添加背景图片

这个问题我在网上搜了很久,没有找到什么解决方案,需求其实很简单,就是添加背景图片.在解决这个问题之前,我们需要了解什么是背景图片?背景图片就是位于文档最底层的图片,文字和其他内容可以浮在它的上面.这又分为两种情况,一是局部的背景图片,一是全局的背景图片.局部的背景图片一般很少遇到,这里我要加的是整体上的一个背景图片.它往往是一些单纯的颜色图片,跟网页的背景图片一样.所以怎么做?我突发奇想,just do it,把图片加进去再说,试试居然成功了,很简单,像往常一样将图片加载到文档即可,只不过,要将

extjs中新建窗体时,给窗体添加背景图片不显示问题之一

1.在extjs中新建窗体时,给窗体添加背景图片不显示,例如下面的代码. 不显示的原因:因为设置了  layout: 'fit', Ext.create('Ext.Window', { title: '客户关系管理系统', width: 1024, height: 600, //plain: true, bodyStyle: 'background:url(images/登录背景.jpg);', headerPosition: 'top', layout: 'fit', items: { bor

netbeans中给jpanl添加背景图片制定代码的理解——匿名内部类继承父类

此测试是为了仿照在netbeans中给jpanl添加背景图片的制定代码的执行过程 在JpDemo中定义了个Car类的数据类型,但在给其赋值对象时使用了匿名内部类,继承了Car类,是其子类,并重写了父类的run方法,由于父类的构造函数,会自动执行run方法,就输出了sun run,证明重写成功,然后又再执行super.run 又一次调用父类未重写的run方法,因此输出fater run. 与此相似给jpanl添加背景图的代码为: jPanel1 = new javax.swing.JPanel()

delphi 窗体添加背景图片

var   Bmp: TBitmap; procedure TForm1.FormCreate(Sender: TObject); begin   Bmp := TBitmap.Create;   Bmp.LoadFromFile('D:\test.bmp');   Brush.Bitmap := Bmp; end; procedure TForm1.FormDestroy(Sender: TObject); begin   Bmp.Free; end; delphi 窗体添加背景图片