WPF快速指导11:输入和命令
2010-09-29 15:23
211 查看
WPF快速指导11:输入和命令
本文摘要:
1:输入的种类;
2:命令
1:输入的种类
可在基元素类上找到公开的主输入 API:UIElement、ContentElement、FrameworkElement 和 FrameworkContentElement。除了基元素类上的输入 API,Keyboard 类和 Mouse 类还提供了用于处理键盘和鼠标输入的其他 API。
Keyboard 类上的输入 API 的示例有 Modifiers 属性(用于返回当前按下的 ModifierKeys)和 IsKeyDown 方法(用于确定是否按下了指定的键)。
下面的示例使用 GetKeyStates 方法确定 Key 是否处于按下状态。
Mouse 类上的输入 API 的示例有 MiddleButton(用于获取鼠标中键的状态)和 DirectlyOver(用于获取鼠标指针当前位于其上的元素)。
下面的示例确定鼠标上的 LeftButton 是否处于 Pressed 状态。
还有一类是触笔输入Stylus,在这里不做赘述。
2:命令
使用命令,输入处理可以更多地在语义级别(而不是在设备输入级别)进行。命令是简单的指令,如 Cut、Copy、Paste 或 Open。命令对于集中命令逻辑很有用。同一命令可通过 Menu、在 ToolBar 上或者通过键盘快捷方式来访问。命令还提供了在命令不可用时禁用控件的机制。
RoutedCommand 是 ICommand 的 WPF 实现。执行 RoutedCommand 时,将在命令目标上引发 PreviewExecuted 和 Executed 事件,这两个事件与其他输入一样,都通过元素树进行隧道和冒泡操作。如果未设置命令目标,则具有键盘焦点的元素将成为命令目标。执行该命令的逻辑将附加到 CommandBinding。当 Executed 事件访问该特定命令的 CommandBinding 时,将调用 CommandBinding 上的 ExecutedRoutedEventHandler。此处理程序执行命令的操作。
WPF 提供了一个由 ApplicationCommands、MediaCommands、ComponentCommands、NavigationCommands 和 EditingCommands 组成的常见命令库,您也可以定义自己的命令库。
WPF 中的路由命令模型可以分为四个主要概念:命令、命令源、命令目标以及命令绑定:
命令是要执行的操作。
命令源是调用命令的对象。
命令目标是在其上执行命令的对象。
命令绑定是将命令逻辑映射到命令的对象。
TMJ .NET培训,开创 200元/月,学到会!
将本文分享到:
QQ空间
新浪微博
人人网
开心网
搜狐微博
MSN
谷歌
更多
本文摘要:
1:输入的种类;
2:命令
1:输入的种类
可在基元素类上找到公开的主输入 API:UIElement、ContentElement、FrameworkElement 和 FrameworkContentElement。除了基元素类上的输入 API,Keyboard 类和 Mouse 类还提供了用于处理键盘和鼠标输入的其他 API。
Keyboard 类上的输入 API 的示例有 Modifiers 属性(用于返回当前按下的 ModifierKeys)和 IsKeyDown 方法(用于确定是否按下了指定的键)。
下面的示例使用 GetKeyStates 方法确定 Key 是否处于按下状态。
if ((Keyboard.GetKeyStates(Key.Return) & KeyStates.Down) > 0) { btnNone.Background = Brushes.Red; }
Mouse 类上的输入 API 的示例有 MiddleButton(用于获取鼠标中键的状态)和 DirectlyOver(用于获取鼠标指针当前位于其上的元素)。
下面的示例确定鼠标上的 LeftButton 是否处于 Pressed 状态。
if (Mouse.LeftButton == MouseButtonState.Pressed) { UpdateSampleResults("Left Button Pressed"); }
还有一类是触笔输入Stylus,在这里不做赘述。
2:命令
使用命令,输入处理可以更多地在语义级别(而不是在设备输入级别)进行。命令是简单的指令,如 Cut、Copy、Paste 或 Open。命令对于集中命令逻辑很有用。同一命令可通过 Menu、在 ToolBar 上或者通过键盘快捷方式来访问。命令还提供了在命令不可用时禁用控件的机制。
RoutedCommand 是 ICommand 的 WPF 实现。执行 RoutedCommand 时,将在命令目标上引发 PreviewExecuted 和 Executed 事件,这两个事件与其他输入一样,都通过元素树进行隧道和冒泡操作。如果未设置命令目标,则具有键盘焦点的元素将成为命令目标。执行该命令的逻辑将附加到 CommandBinding。当 Executed 事件访问该特定命令的 CommandBinding 时,将调用 CommandBinding 上的 ExecutedRoutedEventHandler。此处理程序执行命令的操作。
WPF 提供了一个由 ApplicationCommands、MediaCommands、ComponentCommands、NavigationCommands 和 EditingCommands 组成的常见命令库,您也可以定义自己的命令库。
WPF 中的路由命令模型可以分为四个主要概念:命令、命令源、命令目标以及命令绑定:
命令是要执行的操作。
命令源是调用命令的对象。
命令目标是在其上执行命令的对象。
命令绑定是将命令逻辑映射到命令的对象。
TMJ .NET培训,开创 200元/月,学到会!
NET C# 入门级 | .NET C# 专业级 | .NET 架构级 | BS系统专业级 | BS系统安全 |
1.开篇及C#程序、解决方案的结构 2.源码管理之TFS入门 3.打老鼠初级 …… 21.CMS之主要功能实现 22.进程和线程基础 23.类型转换 24.算法基础 25.初级课程之剩余知识点 | 1.消灭打老鼠游戏中的自定义委托 2.垃圾回收 3.Dispose模式 …… 16.异常使用指导 17.最常用的重构指导 18.Debug和IDE的进阶 19.Resharper的使用 20.ILSPY的使用 | 1.Socket入门 2.打造打老鼠游戏网络版 3.WCF入门 …… 10.依赖注入 11.万物兼可测试 12.软件指标之覆盖率计算 13.软件指标之代码行 14.软件指标之圈复杂度、嵌套深度 | 1.HTML 2.WebForm原理 3.CSS必知必会 …… 19.让浏览器缓存Shop 20.Asp.net的生命周期 21.Asp.net网站的发布以及调试晋级 22.BS程序的本质 23.压力测试我们的Shop | 1.Fiddler必知必会 2.IE开发者工具必知必会 3.跨站脚本防范 4.权限欺骗防范 5.参数越界防范 6.会话劫持防范 7.CSRF防范 8.盗链防范 9.静态文件的保护 |
QQ空间
新浪微博
人人网
开心网
搜狐微博
MSN
谷歌
更多
相关文章推荐
- WPF快速指导6:触发器
- WPF快速指导1:资源
- 【工具巧用】用vim ab/iab定制化个人输入习惯,简化命令,快速输入
- SecureCRT设置和Xshell一样的快速命令集(使用快捷键输入命令和密码)
- WPF快速指导15:动画
- Emacs-093-spacemacs快速进入命令输入模式
- WPF快速指导1:资源
- WPF快速指导2:模板
- WPF快速指导4:数据绑定之绑定方向与自定义转换器
- WPF快速指导8:WPF基元素类
- WPF快速指导14:变换
- window7 输入什么命令可以快速打开服务管理?? 虚拟机设置了NAT网络连接方式,还是无法上网?
- Linux 快速删除已输入的命令
- C# WPF 快速开发11导入txt数据到数据库
- WPF快速指导6:触发器
- WPF快速入门系列(5)——深入解析WPF命令
- WPF快速指导7:控件和自定义控件
- Linux输入命令出错时快速编辑指令
- WPF快速指导15:动画
- linux下如果指令太长,怎么换行输入;怎么快速删除整行命令;怎么快速移动到命令最前或者最后