码迷,mamicode.com
首页 > Windows程序 > 详细

在VS2005中设置WPF中自定义按钮的事件

时间:2018-10-25 15:41:14      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:窗口   ase   步骤   styles   rom   分享图片   blend   pre   hive   

原文:在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中自定义按钮的事件

标签:窗口   ase   步骤   styles   rom   分享图片   blend   pre   hive   

原文地址:https://www.cnblogs.com/lonelyxmas/p/9849604.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!