第一范文网 - 专业文章范例文档资料分享平台

Silverlight入门教程(6)

来源:用户分享 时间:2021-04-05 本文由逝伤 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

资料,教程,编程,文集

void OnMouseEnter(object sender, MouseEventArgs e) {
Ellipse ell = sender as Ellipse; ell.Fill = new SolidColorBrush(Colors.Yellow); } void OnMouseLeave(object sender, MouseEventArgs e) { Ellipse ell = sender as Ellipse; ell.Fill = new SolidColorBrush(Colors.Green); }
运行后效果如下:
分别在两个圆形上放上鼠标并移开后如下所示:
使用代码管理事件
除了在 XAML 中声明事件外,也可以直接使用代码来注册事件,简单的修改一下上面的 XAML 文件,去掉 事件的声明并为两个圆形分别加上 Name:
<Canvas Background="#46461F"> <Ellipse x:Name="ellipse1" Width="120" Height="120" Fill="Orange" Canvas.Top="60" Canvas.Left="80"/>
<Ellipse x:Name="ellipse2" Width="120" Height="120" Fill="Orange" Canvas.Top="60" Canvas.Left="280"/> </Canvas>
在代码中进行事件注册:
public partial class Page : UserControl { public Page()
{ InitializeComponent(); ellipse1.MouseEnter += new MouseEventHandler(OnMouseEnter); ellipse1.MouseLeave += new MouseEventHandler(OnMouseLeave); ellipse2.MouseEnter += new MouseEventHandler(OnMouseEnter); ellipse2.MouseLeave += new MouseEventHandler(OnMouseLeave); }
void OnMouseEnter(object sender, MouseEventArgs e) { Ellipse ell = sender as Ellipse; ell.Fill = new SolidColorBrush(Colors.Yellow); } void OnMouseLeave(object sender, MouseEventArgs e) { Ellipse ell = sender as Ellipse; ell.Fill = new SolidColorBrush(Colors.Green); } }
运行后可以看到跟上面一样的效果:
事件数据
所有的鼠标事件都使用 MouseButtonEventArgs 和 MouseEventArgs 作为事件数据,通过这两个参数 可以获取相关事件数据,使用 GetPosition 方法或者 Source,Handled 属性.如下面的 XAML 声明:
<Canvas Background="#46461F"> <Rectangle Fill="Orange" Stroke="White" StrokeThickness="2" Canvas.Top="40" Canvas.Left="130" Width="240" Height="120" MouseMove="Rectangle_MouseMove"/> <TextBlock x:Name="Status" Foreground="White" Text="Status" Canvas.Left="100" Canvas.Top="200"/> </Canvas>
为矩形添加 MouseMove 事件处理,在鼠标移动时我们获取当前坐标位置,并显示出来:
private void Rectangle_MouseMove(object sender, MouseEventArgs e) {
Point p = e.GetPosition(e.Source as FrameworkElement); Status.Text = String.Format("坐标位置({0}:{1})",p.X,p.Y); }
运行后在矩形中移动鼠标,效果如下:
路由事件
在 Silverlight 中,提供了事件路由,使得我们可以在父节点上接收和处理来自于子节点的事件,Silverli ght 中的路由事件采用了冒泡路由策略.在鼠标事件中 MouseLeftButtonDown ,MouseLeftButtonU p ,MouseMove 三个事件都支持路由事件,而 MouseEnter,MouseLeave 两个事件不支持.下面的 X AML 中我们为 Canvas 对象声明了一个 MouseLeftButtonDown 事件:
<Canvas x
:Name="ParentCanvas" Background="#46461F" MouseLeftButtonDown="ParentCanvas_MouseLeftButtonDown"> <Rectangle

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新高等教育Silverlight入门教程(6)全文阅读和word下载服务。

Silverlight入门教程(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1178503.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top