VS.net2010 鼠标放设置按钮背景色上去就改变背景色,但设置按钮背景色有太多不想一个个写,求大神有简短的写不?

(您的评论需要经过审核才能显示)
共40人参与,5条评论
编程工具排行
01020304050607080910
020304050607080910
本站资源均收集整理于互联网,其著作权归原作者所有,如果有侵犯您权利的资源,请来信告知,我们将及时撤销相应资源。
Copyright &
www.Cncrk.com. All Rights Reserved. 浙网文[8号
浙公网安备 47号
请简要描述您遇到的错误,我们将尽快予以修订wpf中鼠标放到button上时,button会改变颜色,怎么让它不变_百度知道
wpf中鼠标放到button上时,button会改变颜色,怎么让它不变
或者像html那样写个
div:hover{} 样式控制它变成我要的颜色?
我有更好的答案
修改其模板Temlate,去掉IsMouseOver触发器
软件工程师
为您推荐:
其他类似问题
wpf的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。CSS按钮背景鼠标放上去变换背景的代码怎么设置_百度知道
CSS按钮背景鼠标放上去变换背景的代码怎么设置
我想把按钮的背景变换。就是鼠标放在按钮上。按钮的背景换图片!!
我有更好的答案
假设你的按钮的class是btn,两个背景图片分别是bg1.jpg和bg2.jpg,那么可以这样来做css部分:.btn {background:url(bg1.jpg);}.btn:hover {background:url(bg2.jpg);}html部分就很简单了,给input加个样式就行&input class=&btn& type=&submit& value=&我是按钮& /&使用这个样式时别忘了先把input的默认样式,那些padding、margin、border什么的都清零,然后再定义一下宽高,这样出来的视觉效果会好些。
采纳率:72%
来自团队:
简单写一个,或许有助于理解:&input value=&按钮&
type=&button& style=&background-color: T&
onmouseover=&this.style.backgroundImage='url(1.jpg)'& onmouseout=&this.style.backgroundImage='url(2.jpg)'&/& 关键的地方有三个:一是:style=&background-color: T&这里是设置按钮默认风格的,background-color: Transparent,意思是把背景颜色设为透明,这是一定要的,否则在不同的浏览器中,把图片设为按钮背景有可能是显示不出来的。这里还可以定义的风格,比如,宽度:width:120 高度:height:30 字体颜色:color:# 背景图片:background-image:url(图片); 等之间用;号隔开。二是:onmouseover=&this.style.backgroundImage='url(1.jpg)'&表示当鼠标移入时,背景图片设置为1.jpg这张图,可以在url()的括号中指定具体图片地址和名称。三是: onmouseout=&this.style.backgroundImage='url(2.jpg)'& 表示当鼠标移出时,背景图片设置为2.jpg,这也是在url()中指定具体的图片。这只是一种简单的写法,更多的应该多了解js和css。
本回答被网友采纳
假设你的按钮的class是btn,两个背景图片分别是bg1.jpg和bg2.jpg,那么可以这样来做css部分:.btn {background:url(bg1.jpg);}.btn:hover {background:url(bg2.jpg);}html部分就很简单了,给input加个样式就行&input class=&btn& type=&submit& value=&我是按钮& /&使用这个样式时别忘了先把input的默认样式,那些padding、margin、border什么的都清零,然后再定义一下宽高,这样出来的视觉效果会好些。
本回答被网友采纳
标签名:hover{内容}
其他1条回答
为您推荐:
其他类似问题
您可能关注的内容
鼠标的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。WPF中当鼠标移到按钮上时,按钮的背景图片消失的问题
时间: 16:53:01
&&&& 阅读:2122
&&&& 评论:
&&&& 收藏:0
标签:如果给按钮设置了背景图片,当鼠标移到按钮上的时候,按钮就好变成一个浅蓝色的按钮,背景图片就消失了,对于这个问题有很多解决方法,我只分享一下我的解决方法。
我第一次用的方式是在按钮中添加一个图片,不用背景来设置。
HorizontalAlignment="Left" Margin="179,56.506,0,0" Click="Button_Click" VerticalAlignment="Top" Width="90" Height="74" BorderBrush="#FF1344EC" Grid.Row="1" Padding="2"&
&Image Source="image/dzsp.png" Name="btn1Image" Stretch="Fill"&&/Image&
  用这种方式设置的按钮确实不会再出现之前说的问题了,但是也暴露了另一个问题,那就是鼠标移到按钮上后,按钮不会有任何的反应。我希望的是鼠标移到按钮后,按钮的颜色能有所改变。所以我又使用了下面的方式。
&Button Width="100" Margin="0,0,0,4" Name="my" MouseEnter="my_MouseEnter" MouseLeave="my_MouseLeave" BorderBrush="{x:Null}"&
&Button.Template&
&ControlTemplate TargetType="Button"&
&ContentControl&
&Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"&
&StackPanel&
&StackPanel Height="20"&
&StackPanel.Background&
&ImageBrush ImageSource="image/ico_01.png" Stretch="None"/&
&/StackPanel.Background&
&/StackPanel&
&Label BorderThickness="0" Padding="5" FontSize="17" FontWeight="SemiBold" Foreground="White" HorizontalContentAlignment="Center"&XXXX&/Label&
&/StackPanel&&/Border&
&/ContentControl&
&/ControlTemplate&
&/Button.Template&
  这种方式中,将原来用于做背景的图片给分离了,本来的图片是一个图标加上一段文字,现在是将图标单独制作为一张图片ico_01.png,然后原来背景图片中的文字放到了标签中。
定义按钮的两个事件MouseEnter和MouseLeave,分别用于处理鼠标移到按钮和移出按钮
private void my_MouseEnter(object sender, MouseEventArgs e)
my.BorderBrush = Brushes.R
my.BorderThickness = new Thickness(2.0);
my.Opacity = 0.5;
private void my_MouseLeave(object sender, MouseEventArgs e)
my.BorderBrush = null;
my.BorderThickness = new Thickness(0.0);
my.Opacity = 1;
就这样,运行程序,当鼠标进入按钮的时候,按钮就会变成半透明,且出现红色边框标签:原文地址:http://www.cnblogs.com/jin-/p/4914414.html
&&国之画&&&& &&&&chrome插件
版权所有 京ICP备号-2
迷上了代码!posts - 16,&
comments - 81,&
trackbacks - 0
&&&&&& &因为笔者是以前是做C#的,对Winform情有独钟,最近想转C++,想把以前的一些Delphi转成c++,MFC我不熟而且用起来相当烦效果又丑,GTK图形库用起来太麻烦,琢磨着研究一下WInform前台,C++做后台的方法,谷歌了一下,没看到什么中国资料,我草,我以前看过的啊,找来找去,找到一篇英文的,写得太纠结,我结合自己使用的经验,重新整理一下,言简意赅,简明易懂。谨供新人参考,老鸟勿拍。&&&&&&
首先打开你的VS2005
依次点击菜单栏的文件--&新建--&项目
在左边的语言列表选里,选择C++分支下的CLR,然后在右边单击“CLR 空项目”
在名称框里输入Exercise2:
点击“OK”,创建项目成功。
好了,这只是创建了好了一个托管C++项目,要使用WINFORM,我们要引入相关的.NET组件。
在vs主界面上依次点击菜单栏的项目--&"引用";
在弹出的子窗口中选择添加新引用;
在.NET标签页下选择System,点确定,再点击添加新应用,在.NET标签页下选择System.Window.Forms,然后确定,如图
都完成后,应该像这样,然后点击确定
创建一个新的类,点击VS主界面菜单栏的项目--&添加类;
在弹出的子窗体右边选择C++类,点确定,会出现添加类向导,在类名中输入CExercise,基类中填Form
然后我们来到自动生成的头文件代码中,添加System和Form的引用,修改后的文件应该如下
&1&2#pragma&once&3&4using&namespace&S&5using&namespace&System::Windows::F&6&7public&ref&class&CExercise&:&public&Form&8{&9public:<span style="COLOR: #&&&&CExercise(void);<span style="COLOR: #};
然后我们要创建一个主程序来调用这个类。这个大家应该都比我熟的,右击源文件文件夹,点击添加--&新建项,选择CPP文件,代码如下:
&1&2&3#include&&windows.h&&4#include&"Exercise.h"&5&6int&APIENTRY&WinMain(HINSTANCE&hInstance,&7&&&&&&&&&&&&&HINSTANCE&hPrevInstance,&8&&&&&&&&&&&&&LPSTR&lpCmdLine,&9&&&&&&&&&&&&&int&nCmdShow)<span style="COLOR: #{<span style="COLOR: #&&&&Application::Run(gcnew&CExercise());<span style="COLOR: #<span style="COLOR: #&&&&return&<span style="COLOR: #;<span style="COLOR: #}
含义我不多说了,把那个Cexercise换成你自己别的名字的类就可以运行那个类了,当然了,要注意包含头文件。点击运行看看,一个白白的窗体,对吗,好的,革命成功迈出了坚实的一步。
下面我们来试着添加一个button按钮,修改Exercise.cpp的代码如下
<span style="COLOR: #<span style="COLOR: ##include&"Exercise.h"<span style="COLOR: #<span style="COLOR: #CExercise::CExercise(void)<span style="COLOR: #{<span style="COLOR: #&&&&System::Windows::Forms::Button^&&button1=gcnew&B//创建按钮<span style="COLOR: #&&&&this-&Controls-&Add(button1);//把按钮附加到我们的窗体上<span style="COLOR: #}<span style="COLOR: #
在运行看看,应该像这样
然后如果你还想继续给这个按钮添加文字设置尺寸什么的,你可以通过像这样的代码,具体我不说多少,因为选择Winform就是看中快速的控件拖拉功能,都是手写我还不如用GTK
this-&button1-&Name&=&L"button1";//设置按钮文字this-&button1-&Size&=&System::Drawing::Size(<span style="COLOR: #,&<span style="COLOR: #);//设置按钮尺寸
好了,下面重点来了,如何像C#一样自由地拖拉控件改属性呢,我们右击项目,选择添加--&新建项。
在弹出的子窗体右边选择Windows窗体,输入一个名字,比如&#8220;HelloWorld&#8221;,点击确定
然后我们就欣喜的发现,哇,又回到Winform拖拉控件的时代啦,是的,没错,而且我们可以以C++写后台。没用过c#的朋友请在界面上找找工具箱,实在没找到请依次点击主窗体上菜单栏的视图--&工具箱,然后从工具箱里找到一个button控件拖动到主窗体上。
之后双击这个button,会自动添加一个button的单击事件,我们希望单击的时候弹出一个&#8220;我是傻逼&#8221;的消息框,代码如下:
<span style="COLOR: #&&&&private:&System::Void&button1_Click(System::Object^&&sender,&System::EventArgs^&&e)&{<span style="COLOR: #&&&&&&&&&&&&&&&&&//MessageBox.Show(this,"wocao");//C#格式的调用方法是不行的<span style="COLOR: #&&&&&&&&&&&&&&&&&MessageBox::Show(this,"我是傻逼");//这才是正确的<span style="COLOR: #&&&&&&&&&}<span style="COLOR: #&&&&};<span style="COLOR: #}
第一个参数是父窗体,第二个参数是消息框的内容。细心的同学发现了,这里和C#不太一样,是的,如果你按C#的写法:Messsage.Show(...),这样程序是没法通过编译的,毕竟是两种语言嘛。
好了,我们回到主程序入口那里,修改Exercise()为HelloWorld(),运行看看,出错了!!没错,你还得添加头文件,添加引用,真是麻烦啊,没办法,这儿还没有在C#下的引用添加提示,不知道Clipse下的Cdt有没有这个功能,最终代码如下
&1#include&&windows.h&&2#include&"Hello&World.h"&4using&namespace&WInformC&5int&APIENTRY&WinMain(HINSTANCE&hInstance,&6&&&&&&&&&&&&&&&&&&&&&HINSTANCE&hPrevInstance,&7&&&&&&&&&&&&&&&&&&&&&LPSTR&lpCmdLine,&8&&&&&&&&&&&&&&&&&&&&&int&nCmdShow)&9{<span style="COLOR: #&&&&Application::Run(gcnew&HelloWorld());<span style="COLOR: #<span style="COLOR: #&&&&return&<span style="COLOR: #;<span style="COLOR: #}
好了,运行一下看看。像这样,那就对了,再深入地使用就不是本贴讨论的范畴了,在C++上,各位都是我的前辈
阅读(29662)
&re: c++用WinForm做界面的实现
google一下&C++/CLI,WinForm&,就能找到不少关于“C++与WinForm”的文章了。楼主的这篇文件却是我见过的最简洁,最容易上手的一篇,支持!尤其是弹出信息很给力!!!&&&&&&
&re: c++用WinForm做界面的实现
刚在vs 2010里,用非托管C++项目,也成功实现了上述功能。&&&&&&
&re: c++用WinForm做界面的实现
虽然那个对话框上弹出的字不登大雅之堂,但文章还是蛮基础的,谢谢了&&&&&&
&re: c++用WinForm做界面的实现
谢谢您的支持@waiting4you&&&&&&
&re: c++用WinForm做界面的实现
@crossgate求细节&&&&&&
&re: c++用WinForm做界面的实现
@Skill您的支持是我最大的动力,弹出信息神马的是个人风格,没法改&&&&&&
&re: c++用WinForm做界面的实现
C++/cli这东西没多少人用的,新语法和新关键字实在太令人反胃了。&&&&&&
&re: c++用WinForm做界面的实现
@right正因为用的人少,文档少,所以才要写出来,哪怕只能帮到一两个人也是好的,学冷门东西时的那个孤独无助感我太难忘了&&&&&&
&re: c++用WinForm做界面的实现
@叫我老王吧项目可以不是clr项目,比如win32 空项目就可以。也就是非托管的VC项目。然后在项目属性的general里,&Common Language Runtime Support&里选中“Common Language Runtime Support(/clr)”。这样就可以继续贴子里的操作,引用.net库了。后续一样。如果想用到.net库的winform,还是得声明托管指针,也就是必须用^而不是*来表示指针。相当于混合编程,主体是C++,搭配C++.net代码来做界面。&&&&&&
&re: c++用WinForm做界面的实现
其实MFC也是这个效果,你没有发现这个按钮都很丑么,win7上的按钮可不是这样的!&&&&&&
&re: c++用WinForm做界面的实现
我也是C#转C++,用C++开发桌面窗口程序就是为了丢开那沉重的framework。你这个效果MFC做出来的是一样的。&&&&&&
&re: c++用WinForm做界面的实现
@唐焱@未注册
首先感谢你们能花时间看完我这篇烂帖
按钮样式你可以直接在属性里设定背景图片,换到MFC这又得做刷子了吧。.NET的强大并非是他默认的样式有多好看,否则DirectUI也不会卖那么贵,而是他的方便快捷,多种多样个性化的控件而不是MFC数来数去还不到VCL的一半,说句不正经的话,至少他不用给窗体换个背景色还要花好几行代码做刷子。
最好,即使你们再怎么讨厌.NET,喜欢MFC,总有一些VCL或者GTK过来的人不更习惯控件拖拉而不是把菜单和用户区分开做不是吗?每个人都有自己选择的自由&&&&&&
&re: c++用WinForm做界面的实现
@crossgate
你把项目属性里德CLR托管选上了,他不就是已经变成了CLR项目了。&&&&&&
&re: c++用WinForm做界面的实现
为什么不考虑使用QT呢?&&&&&&
&re: c++用WinForm做界面的实现
@ABC有了GTK就不考虑QT了&&&&&&
&re: c++用WinForm做界面的实现
为什么不直接在VC++里新建windows form 的工程呢.... 我以为是讲界面调用clr的程序..&&&&&&
&re: c++用WinForm做界面的实现
@fei哎呀,纯属是我不知道有这个功能,我无知了&&&&&&
&re: c++用WinForm做界面的实现
这个补丁可以让vs2012增加vs2008那样可以直接创建windows form工程&&&&&&
&re: c++用WinForm做界面的实现
这个就好嘛&&&&&&
&re: c++用WinForm做界面的实现
项目属性-》配置属性-》连接器-》系统-》-》子系统(窗口:(subsystem:windows))。项目属性-》配置属性-》连接器-》系统-》-》高级 (入口:main)&&&&&&
&re: c++用WinForm做界面的实现[未登录]
这个挺简单明了的,就是第33点里面using namespace WInformC
中的WinformCpp是哪里来的呢?&&&&&&
&re: c++用WinForm做界面的实现
第33点里面using namespace WInformC 中的WinformCpp报错a namespace with this name does not exist?&&&&&&
&re: c++用WinForm做界面的实现[未登录]
楼主写的很实用,也很详细,只是有一点点没有说,在地33点中的WInformCpp是HelloWord中的命名空间,一般默认生成,我刚开始就没找到,对菜鸟来说还真的不好找啊&&&&&&
&re: c++用WinForm做界面的实现
非常感谢@fei&&&&&&
&re: c++用WinForm做界面的实现
我按你的步骤 怎么操作不成功呢&&&&&&
&re: c++用WinForm做界面的实现
多谢博主的讲解 , 我在VS2012 测试了 结果不是很好 报错。1&
Exercise.cpp1&e:\exercise2\exercise2\Exercise.h(9): error C3624: “System::ComponentModel::Component”: 使用此类型需要引用 程序集“System”1&
在导入类型“System::Windows::Forms::Control ”(从程序集“System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c”中导入)时发生此诊断。1&
在导入类型“System::Windows::Forms::ScrollableControl ”(从程序集“System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c”中导入)时发生此诊断。1&
在导入类型“System::Windows::Forms::ContainerControl ”(从程序集“System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c”中导入)时发生此诊断。1&
在导入类型“System::Windows::Forms::Form ”(从程序集“System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c”中导入)时发生此诊断。1&Exercise.cpp(5): fatal error C1903: 无法从以前的错误中恢复;正在停止编译1&
MainGsz.cpp1&e:\exercise2\exercise2\Exercise.h(9): error C3624: “System::ComponentModel::Component”: 使用此类型需要引用 程序集“System”1&
在导入类型“System::Windows::Forms::Control ”(从程序集“System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c”中导入)时发生此诊断。1&
在导入类型“System::Windows::Forms::ScrollableControl ”(从程序集“System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c”中导入)时发生此诊断。1&
在导入类型“System::Windows::Forms::ContainerControl ”(从程序集“System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c”中导入)时发生此诊断。1&
在导入类型“System::Windows::Forms::Form ”(从程序集“System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c”中导入)时发生此诊断。1&
正在生成代码...========== 全部重新生成: 成功 0 个,失败 1 个,跳过 0 个 ==========&&&&&&
&re: c++用WinForm做界面的实现
@wenluderen项目属性, 添加新引用&System&, 和文章第11步一样&&&&&&
2010年12月
28293012345678910111213141718192021232425262829303112345678
阅读排行榜
评论排行榜}

我要回帖

更多关于 按钮背景色透明 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信