概述

Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython,对JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步学Silverlight 2系列》文章带您快速进入Silverlight 2开发。
本文为系列文章第六篇,介绍Silverlight中的键盘处理事件,在Silverlight 2中,支持KeyDown和KeyUp两个事件。

声明事件

所有的事件声明过程都是一样的,在XAML中或者是在代码中进行注册。
<Canvas x:Name="LayoutRoot" Background="#46461F"><Ellipse x:Name="ellipse" Width="120" Height="120" Fill="Orange"Canvas.Top="50" Canvas.Left="160"Stroke="White" StrokeThickness="2"KeyUp="ellipse_KeyUp"KeyDown="ellipse_KeyDown"/>
</Canvas>
或者在代码中注册:
public partial class Page : UserControl
{public Page(){InitializeComponent();this.ellipse.KeyUp += new KeyEventHandler(ellipse_KeyUp);this.ellipse.KeyDown += new KeyEventHandler(ellipse_KeyDown);}private void ellipse_KeyUp(object sender, KeyEventArgs e){}private void ellipse_KeyDown(object sender, KeyEventArgs e){}
}

使用事件参数KeyEventArgs

使用事件参数可以获取到事件数据,可以使用的属性有Key、PlatformKeyCode、Handled、Source。
private void ellipse_KeyUp(object sender, KeyEventArgs e)
{if (e.Key == Key.R){//......}else if(e.Key == Key.Ctrl && e.Key == Key.U){ //......}
}
在事件数据中,Handled有时候非常有用,可以用来判断事件是否已经处理。

键盘路由事件

键盘事件KeyDown和KeyUp都支持路由事件,如下面的示例。
<Canvas x:Name="LayoutRoot" Background="#46461F" KeyUp="LayoutRoot_KeyUp"><TextBox x:Name="textbox" Width="200" Height="40"Canvas.Top="80" Canvas.Left="80"/><Button x:Name="button" Width="100" Height="40"Canvas.Top="80" Canvas.Left="280"Background="Red" Margin="20 0 0 0" Content="Submit"/><TextBlock x:Name="Status" Foreground="White"  Text="Status"Canvas.Left="80" Canvas.Top="200"/>
</Canvas>
为Canvas注册了一个KeyUp事件,编写事件处理程序。
private void LayoutRoot_KeyDown(object sender, KeyEventArgs e)
{if (e.Key != Key.Unknown){String msg = "The key " + e.Key.ToString();msg += " was pressed while focus was on " + (e.Source as FrameworkElement).Name;statusTextBlock.Text = msg;}
}
运行程序,当文本框获得焦点并输入t时
 
按钮获得焦点
 

结束语

关于键盘事件都简单的介绍到这儿,希望对大家有用。

转载于:https://blog.51cto.com/terrylee/67225

一步一步学Silverlight 2系列(6):键盘事件处理相关推荐

  1. 一步一步学Silverlight 2系列(3):界面布局

    概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...

  2. 一步一步学Silverlight 2系列(10):使用用户控件

    概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...

  3. 一步一步学Silverlight 2系列(24):与浏览器交互相关辅助方法

    概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...

  4. 一步一步学Silverlight 2系列(18):综合实例之RSS阅读器

    概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...

  5. 一步一步学Silverlight 2系列(9):使用控件模板

    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://terrylee.blog.51cto.com/342737/67243 ...

  6. 一步一步学Silverlight 2系列(13):数据与通信之WebRequest

    概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...

  7. 一步一步学Silverlight 2系列(32):图形图像综合实例—“功夫之王”剧照播放_转载...

    概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...

  8. 一步一步学Silverlight 2系列(21):如何在Silverlight中调用JavaScript

    概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...

  9. 一步一步学Silverlight 2系列(12):数据与通信之WebClient

    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://terrylee.blog.51cto.com/342737/67249 ...

  10. 一步一步学Silverlight 2系列(5):实现简单的拖放功能

    概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...

最新文章

  1. 剑指offer--day07
  2. Celery 应用:Application
  3. maven根据profile动态选择配置文件
  4. taobao sass
  5. 【电信增值业务学习笔记】8 3G视频类增值业务
  6. Python 【搜狐号】短视频的自动上传与发布实例演示,同时支持抖音、快手、哔哩哔哩、小红书、微视、西瓜视频、微信视频号等平台的视频自动化同步发布
  7. Linux操作系统中Anaconda的安装
  8. 买卖股票的最好时机二Python解法
  9. 配置msf连接postgresql数据库
  10. 数据库5 索引 动态哈希(Dynamic Hashing)
  11. java bootstrapcache_使用ehcache持久化数据到磁盘 并且在应用服务器重启后不丢失数据...
  12. SpringCloud学习笔记008---杂七杂八002_spring 注解@Value详解_@Value(quot;#{}quot;)与@Value(quot;${}quot;)的区别
  13. 西安电脑服务器维修电脑,西安苹果电脑维修
  14. 矩阵分解 Cholesky分解
  15. COMSOL光学仿真专题案例展示
  16. 富文本TinyMCE
  17. html学生项目总结反思,小学月考总结与反思(精选10篇)
  18. 分期付款“名义利率”和“实际利率”的公式及其套路
  19. 明翰英语教学系列之雅思篇V1.9(持续更新)
  20. 决策中心:构建企业长期战略竞争力

热门文章

  1. .bin 文件用excel文件打开_bin文件怎么打开呢?
  2. amd 深度学习模型部署_Web服务部署深度学习模型-续集
  3. IIS下配置php运行环境
  4. 参考资料学习APR库
  5. C# win10系统调用不了系统自带的软键盘osk.exe
  6. Java学习小程序(5)猜数字游戏
  7. 剑指offer 树的子结构
  8. Scala入门到精通——第五节 函数、高阶函数与闭包
  9. 详解log4j2(下) - Log4j2在WEB项目中配置
  10. 如何在生产环境使用Btrace进行调试