WPF快速指导11:输入和命令
本文摘要:
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 中的路由命令模型可以分为四个主要概念:命令、命令源、命令目标以及命令绑定:
-
命令是要执行的操作。
-
命令源是调用命令的对象。
-
命令目标是在其上执行命令的对象。
-
命令绑定是将命令逻辑映射到命令的对象。
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.静态文件的保护
|