.NEt专家博客!
【李会军】一步一步学Silverlight 2系列(4):鼠标事件处理
上一篇 / 下一篇 2008-04-11 19:15:58 / 个人分类:经典文章
概述
Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython,对JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步学Silverlight 2系列》文章带您快速进入Silverlight 2开发。
本文为系列文章第四篇,学习Silverlight 2中的鼠标事件处理,支持的鼠标事件包括MouseMove 、MouseEnter 、MouseLeave 、MouseLeftButtonDown、MouseLeftButtonUp。
声明事件
对于鼠标事件我们可以附加到任何Silverlight对象上面,如下面的XAML声明,为两个圆形添加上MouseEnter和MouseLeave事件:
<CanvasBackground="#46461F">
Yp4bC7`2d3p,V2FA R0<EllipseWidth="120"Height="120"Fill="Orange"ITPUB个人空间&l `gPmk\,~
Canvas.Top="60"Canvas.Left="80"ITPUB个人空间 Y-f0fg7w$J+x|[
MouseEnter="OnMouseEnter"
A f q)N5nV0MouseLeave="OnMouseLeave"/>ITPUB个人空间e"C(E.tgA
ITPUB个人空间$j|D;M?
<EllipseWidth="120"Height="120"Fill="Orange"
4X YO*nO6VKm0Canvas.Top="60"Canvas.Left="280"
a y&q5Chr0MouseEnter="OnMouseEnter"ITPUB个人空间9WW"m!XWs$hq!U(aF#{+n
MouseLeave="OnMouseLeave"/>ITPUB个人空间sqT sW4_!N7w
</Canvas>
编写事件处理程序,鼠标放上去时和鼠标移开时分别改变圆形的填充色:
voidOnMouseEnter(objectsender,MouseEventArgse)
0@_$Q)~-^ m,H3]0{
y0K`YG A H r'H0Ellipseell = senderasEllipse;
|ulcus m.UM0ell.Fill =newSolidColorBrush(Colors.Yellow);
*Kj[xka*pv0}
&c,f6O*[Yt(r0voidOnMouseLeave(objectsender,MouseEventArgse)ITPUB个人空间0rLSpH-]q q
{
D|+[3W3D/SR Hw1{)e0Ellipseell = senderasEllipse;ITPUB个人空间 G%}a!mX
ell.Fill =newSolidColorBrush(Colors.Green);ITPUB个人空间4fT)Jh"Ay$T4]
}
运行后效果如下:ITPUB个人空间 ] n
vEp0s7Y~U \1s
ITPUB个人空间5}^)S1O$})M7IE
N
分别在两个圆形上放上鼠标并移开后如下所示:
.r sz,d|IS0
u)S#PX"C9js
s0
使用代码管理事件
除了在XAML中声明事件外,也可以直接使用代码来注册事件,简单的修改一下上面的XAML文件,去掉事件的声明并为两个圆形分别加上Name:
<CanvasBackground="#46461F">ITPUB个人空间xnI9_Z*|{?/cN p
<Ellipsex:Name="ellipse1"Width="120"Height="120"Fill="Orange"ITPUB个人空间vAJ:Q-C ^AYzl8i
Canvas.Top="60"Canvas.Left="80"/>ITPUB个人空间3F3F!E4g'A1_
xE%tb9s ZB VN0<Ellipsex:Name="ellipse2"Width="120"Height="120"Fill="Orange"ITPUB个人空间 T!lUUSz&Y u-n
Canvas.Top="60"Canvas.Left="280"/>
j.[*d-ka K+LSo,y0</Canvas>
在代码中进行事件注册:
public partial classPage:UserControlITPUB个人空间ZQ~7`4D
{