博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF中的命令路由
阅读量:6152 次
发布时间:2019-06-21

本文共 1578 字,大约阅读时间需要 5 分钟。

WPF中的命令路由的4个主要的概念:命令、命令源、命令目标、命令绑定。

命令:WPF中的命令实现ICommand接口,公开了两个方法一个事件。分别是:Excute、CanEXcute、CanExecuteChanged。Execute执行与命令相关联的操作。CanExecute确认是否可以在当前命令目标上执行命令。如果命令管理器检测到命令源发生了更改,次更改可能会使得已引发但尚未有命令绑定执行的命令无效。则将引发CanExecuteChanged。ICOmmand的WPF实现的是RoutedCommand类。RoutedCommand上的Execute方法在命令目标上引发previewCanExecuted和CanExecute事件,这些时间沿着元素树以隧道忽然冒泡的形式传递。直到遇到有特定命令的CommandBinding对象。WPF提供了一组常用的路由命令,这些路由命令分别属于一下几个类。

ApplactionCommands、NavigationCommand、ComponmentCommand、EditingCommands、MediaCommands这几个类仅仅包含RoutedCommand对象,而不包含命令的实现逻辑。实现逻辑又其上执行命令的对象负责。

以下是WPF已经封装好的命令:

ApplactionCommands

copy、close、cut、pause、save、print

MediaCommands

Play、pause、NextTrack、IncreaseVolum、

Record、Stop

NavigationCommands  BrowseForward、BrowseBack、Zoom、Search
EditingCommands AlginXXX、MoveXXX、selectXXX
ComponmentCommands MoveXXX、SelectXXX、ScrollXXX、ExtendSelection

        其中XXX代表操作集合,例如MoveNext、MovePrevious。其中ApplactionCommands为默认的命令类,引用其中的命令时可以省略。

 命令源:调用命令的对象MenuItem、Button、KeyGesture。WPF中的命令源通常实现ICommandSource接口。ICommandSource公开3个属性Command、CommandTarget、CommandParaeter。 command是调用命令源时执行的命令。commandTarget是要在其上执行命令的对象(注意:ICommandSource上的CommandTarget只有在ICommand是RoutedCommand时才有效。如果ICommandSource上设置了CommandTarget而对应的命令不是RoutedCommand,将会忽略命令目标,如果未设置CommandTarget则具有键盘输入焦点的元素将是命令目标)。CommandParaeter是用户定义的数据类型,用于将信息传递到实现命令的处理程序。

实现ICommandSource的WPF类包括ButtonBase、MenuItem、HyperLink、InputBinding。 ButtonBase、MenuItem、HyperLink在被单机时调用命令,并却直接使用控件的command属性绑定命令。InputBinding在与之关联的inputGesture执行时调用,并且使用KeyBinding、MouseBinding绑定某一特定的输入手势到某一命令上。

 

转载于:https://www.cnblogs.com/dagedan/archive/2012/10/29/2744612.html

你可能感兴趣的文章
如何避免历史回退到登录页面
查看>>
《图解HTTP》1~53Page Web网络基础 HTTP协议 HTTP报文内的HTTP信息
查看>>
unix环境高级编程-高级IO(2)
查看>>
树莓派是如何免疫 Meltdown 和 Spectre 漏洞的
查看>>
雅虎瓦片地图切片问题
查看>>
HTML 邮件链接,超链接发邮件
查看>>
HDU 5524:Subtrees
查看>>
手机端userAgent
查看>>
pip安装Mysql-python报错EnvironmentError: mysql_config not found
查看>>
http协议组成(请求状态码)
查看>>
怎样成为一个高手观后感
查看>>
[转]VC预处理指令与宏定义的妙用
查看>>
JQuery radio单选框应用
查看>>
MySql操作
查看>>
python 解析 XML文件
查看>>
MySQL 文件导入出错
查看>>
java相关
查看>>
由一个异常开始思考springmvc参数解析
查看>>
向上扩展型SSD 将可满足向外扩展需求
查看>>
虚机不能启动的特例思考
查看>>