在VS2005中设置WPF中自定义按钮的事件
上篇讲了如何在Blend中绘制圆角矩形(http://blog.csdn.net/johnsuna/archive/2007/08/13/1740781.aspx),本篇继续下一步骤,如何自定义按钮的事件。
(1)首先,在VS2005中打开上篇所建的项目(File - Open Project),找到LinearGradientButton.csproj(这是我这里的项目名称),打开之后,双击LinearGradientDemo.xaml.cs,在LinearGradientDemo的构造函数的上面,键入:
Color initColor;//这句用来保存最初的按钮底色值
(2)在你所看到LinearGradientDemo的构造函数中有句this.InitializeComponent();,再在下面键入如下用灰色底突出颜色的代码,得到:
public LinearGradientDemo()
{
this.InitializeComponent();
this.RoundRect_LinearGradientBottom.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(ClickRect_MouseLeftButtonDown);
this.RoundRect_LinearGradientBottom.MouseEnter += new System.Windows.Input.MouseEventHandler(EnterButton);
this.RoundRect_LinearGradientBottom.MouseLeave += new System.Windows.Input.MouseEventHandler(LeaveButton);
initColor = ((SolidColorBrush)(this.RoundRect_Bg.Fill)).Color;
}
说明:
(a)这里的ClickRect_MouseLeftButtonDown是当鼠标左键在按钮上(确切地说是在RoundRect_LinearGradientBottom这个圆角矩形上)按下之后所发生的事件。
(b)EnterButton则是当鼠标进入RoundRect_LinearGradientBottom后所发生的事件(MouseEnter)。
(c)LeaveButton是当鼠标离开RoundRect_LinearGradientBottom后所发生的事件(MouseLeave)。
(3)键入下面代码:
void ClickRect_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
MessageBox.Show("你点击我了!");
}
void EnterButton(object sender, System.Windows.Input.MouseEventArgs e)
{
this.RoundRect_Bg.Fill = new SolidColorBrush(Color.FromArgb(255, 200, 100, 0));
}
void LeaveButton(object sender, System.Windows.Input.MouseEventArgs e)
{
this.RoundRect_Bg.Fill = new SolidColorBrush(initColor);
}
(4)按F5或Ctrl+F5运行它,得到如下所示界面:
当鼠标移进按钮时,颜色变了,离开后按钮颜色恢复为最初的颜色。
当鼠标点击按钮时,弹出“你点击我了!”的对话框。
这里用到了System.Windows.Shapes.Rectangle从UIElement继承的各种公共事件(详见SDK:ms-help://MS.LHSMSSDK.1033/MS.LHSNETFX30SDK.1033/fxref_presentationcore/html/229bc431-4295-fd39-706f-09abde5e7be5.htm)来实现自定义控件的事件处理。
在VS2005中设置WPF中自定义按钮的事件的更多相关文章
- PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox增加自定义按钮的方法
在Qt Designer中可以预先定义标准按钮,相关支持的标准按钮请见<PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的StandardButton ...
- JOptionPane如何自定义按钮绑定事件
JOptionPane如何自定义按钮绑定事件 2018年01月29日 19:27:10 阅读数:475 摘自:https://blog.csdn.net/m0_37355951/article/det ...
- 一百、SAP中ALV事件之十三,给ALV的自定义按钮添加事件
一.我们查看定义的按钮,有一个名字是ZADD的自定义按钮 二.代码如下,用于判断点击了哪个按钮 三.点击测试按钮之后,会弹出一个弹窗 完美
- TFS中设置任务中的“计划开始时间”为可编辑状态
问题现象 如果使用TFS系统的默认模板CMMI新建团队项目,你会发现在网页浏览器中,任务工作项的"计划开始日期"和"计划结束日期"的类型是普通字符,并且不能修改 ...
- 在.NET Core 3.0中的WPF中使用IOC图文教程
我们都知道.NET Core 3.0已经发布了第六个预览版,我们也知道.NET Core 3.0现在已经支持创建WPF项目了,刚好今天在写一个代码生成器的客户端的时候用到了WPF,所以就把WPF创建以 ...
- ASP.Net Core中设置JSON中DateTime类型的格式化(解决时间返回T格式)
最近项目有个新同事,每个API接口里返回的时间格式中都带T如:[2019-06-06T10:59:51.1860128+08:00],其实这个主要是ASP.Net Core自带时间格式列化时间格式设置 ...
- css中设置table中的td内容自动换行
word-break:break-all和word-wrap:break-word都是能使其容器如DIV的内容自动换行. 它们的区别就在于: 1,word-break:break-all 例如div宽 ...
- 【java】处理时间字段 在数据库查询的时候只想要年月日,不想要时分秒 ,java中设置时间类型为年月日,java中设置Date中的时分秒为00.00.000
JDK8 中最简单的处理方式: @Test public void dateTest(){ Date now = new Date(); System.out.println(now); // jav ...
- MVC和WebApi中设置Area中的页为首页
拿WebApi为例,我们一般会生成一份帮助文档,帮助文档会在Area中 我们现在要讲帮助文档设为首页 只需在App_Start文件夹下添加 RouteConfig 类 public class Rou ...
随机推荐
- 6 、字符编码笔记:ASCII,Unicode和UTF-8
1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出 256种状态,这被称为一个字节(byte) ...
- 黑马day18 jquery高级特性&Ajax的load方法
介绍jquery中的load方法: (1).前面没有jquery.修饰,能够判断出他是一个普通的非全局函数(也就是说是一个局部函数):$.,$().,jquery.等修饰的就是全局函数.没有这些修饰的 ...
- ios开发多线程二:NSOperationQueue的基本使用
#import "ViewController.h" #import "XMGOperation.h" @interface ViewController () ...
- Tricks(四十九)—— 按 batch 访问越界的解决办法
使用 min 函数指定访问的最终位置,本质上是增加一个条件判断: done = false; batch_size = 10000; idx = 1; while ~done idx_end = mi ...
- struts2基本的配置代码
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "- ...
- 微信开发学习日记(六):weiphp框架
最近重点在看weiphp这个开源的第三方微信公众平台框架. 在网上找微信资料,找到了这个.很早之前,就初步学习了Thinkphp和Onethink2个开源框架,当看到weiphp是用这2个框架开发的时 ...
- 手把手教你完成App支付JAVA后台-支付宝支付JAVA
接着上一篇博客,我们暂时完成了手机端的部分支付代码,接下来,我们继续写后台的代码. 后台基本需要到以下几个参数,我都将他们写在了properties文件中: 支付宝参数 AliPay.payURL = ...
- 【u213&&t037】修剪花卉
Time Limit: 1 second Memory Limit: 128 MB [问题描述] ZZ对数学饱有兴趣,并且是个勤奋好学的学生,总是在课后留在教室向老师请教一些问题. 一天他早晨骑车去上 ...
- amazeui中内置的web组件有哪些且如何用
amazeui中内置的web组件有哪些且如何用 一.总结 一句话总结: 1.组件还是jquery.js+amazeui.js,和插件一样,准确的说是amazeui.css+jquery.js+amaz ...
- 检索01-c#中基本数据类型和引用类型的区别
1.基本定义 基本数据类型包括:整型.浮点型.字符型.结构体.布尔型.日期时间.枚举类型等 引用类型包括:字符串.类.数组.接口等 堆定义:是一种特殊的树形数据结构,每个结点都有一个值,一般由程序员分 ...