命令模型的主要元素:

1、命令

2、命令绑定:命令连接到相关的应用程序逻辑

3、命令源:命令源触发命令,

4、命令目标:应用程序逻辑。

----------------------------------------------------------------

ICommand接口

命令模型的核心是System.Windows.Input.ICommand接口。

public interface ICommand
{
event EventHandler CanExecuteChanged; //当命令状态改变时,引发该事件。 bool CanExecute(object parameter); //此方法返回命令状态,如果命令可用则返回true,不可用则返回false。 void Execute(object parameter); //定义在调用此命令时要调用的方法。
}

该接口包含两个方法和一个事件:

void Execute(object parameter);

bool CanExecute(object parameter);

event EventHandler CanExecuteChanged;

Execute()方法包含应用程序任务逻辑。

CanExecute()方法返回命令的状态;如果命令可用,返回true;如果不可用,返回false。

命令状态改变时,引发CanExecuteChanged事件。对于使用命令的任何控件,这是指示信号,表示它们应当调用CanExecute()方法检查命令的状态。

--------------------------------------------------------------------------------------------------------

RoutedCommand类

创建自己的命令时,不会直接实现ICommand接口;而是使用System.Windows.input.RoutedCommand类,该类自动实现了ICommand接口。RoutedCommand类是WPF中唯一实现了ICommand接口的类。所有WPF命令都是RoutedCommand类及其派生类的实例。

RouteCommand类不包含任何应用程序逻辑,只代表命令,只含有命令本身的功能,所有RoutedCommand对象的功能相同。

RouteCommand类为事件冒泡和隧道添加了一些额外的基础结构。

RouteCommand类私有地实现了ICommand接口,并添加了ICommand接口方法的不同版本。

public void Execute(object parameter, IInputElement target){}

public bool CanExecute(object parameter, IInputElement target){}

RoutedCommand类还引入三个属性:命令名称(Name属性)、包含命令的类(OwnerType)以及触发命令的按键或鼠标操作。

--------------------------------------------------------------------------------------------------------------------------

RoutedUICommand类

RoutedUICommand类继承自RoutedCommand类(实际上WPF的所有预先构建的命令都是RoutedUICommand对象)。

RoutedUICommand类只增加了Text属性,该属性是为了显示命令的文本。按钮的文本可以使用命令的Text属性,相同命令显示相同的文本。

------------------------------------------------------------------------------------------------------------------

命令库

WPF通过5个静态类的静态属性提供:

1、ApplicationCommand:通用命令,剪切板命令(Copy、Cut、Paste),文档命令(New、Open、Save、Save As、Print)等。

2、NavigationCommand:导航命令,基于页面的应用程序设计的一些命令(BrowseBack、BrowseForward和NextPage)等。

3、EditingCommand:文档编辑命令,

4、ComponentCommands:该类提供了由用户界面组建使用的命令。

5、MediaCommands:该类提供了一组用于处理多媒体的命令。

WPF-命令-基础知识的更多相关文章

  1. WPF 命令基础

    1命令的组成 命令源:就是谁发送的命令. 命令目标:就是这个命令发送给谁,谁接受的命令. 命令:就是命令的内容. 命令关联:就是把命令和外围的逻辑关联起来,主要用来判断命令是否可以执行和执行完以后干点 ...

  2. WPF基础知识、界面布局及控件Binding(转)

    WPF是和WinForm对应的,而其核心是数据驱动事件,在开发中显示的是UI界面和逻辑关系相分离的一种开放语言.UI界面是在XAML语言环境下开发人员可以进行一些自主设计的前台界面,逻辑关系还是基于c ...

  3. WPF基础知识、界面布局及控件Binding

    WPF是和WinForm对应的,而其核心是数据驱动事件,在开发中显示的是UI界面和逻辑关系相分离的一种开放语言.UI界面是在XAML语言环境下开发人员可以进行一些自主设计的前台界面,逻辑关系还是基于c ...

  4. WPF Step By Step -基础知识介绍

    回顾 上一篇我们介绍了WPF基本的知识.并且介绍了WPF与winform传统的cs桌面应用编程模式上的变化,这篇,我们将会对WPF的一些基础的知识做一个简单的介绍,关于这些基础知识更深入的应用则在后续 ...

  5. Windows权限提升基础知识和命令

    介绍 这篇文章是介绍window的权限提升,虽然不是一个全面的指南,但会试图覆盖主要的技术,常用的资源列表在文章底部,可供大家参考. window权限提升基础知识 初始信息收集 在开始提权之前,我们需 ...

  6. Linux基础知识第九讲,linux中的解压缩,以及软件安装命令

    目录 Linux基础知识第九讲,linux中的解压缩,以及软件安装命令 一丶Linux Mac Windows下的压缩格式简介 2.压缩以及解压缩 3.linux中的软件安装以及卸载 1.apt进行安 ...

  7. Linux基础知识第三讲,拷贝文件跟移动文件命令

    目录 Linux基础知识第三讲,拷贝文件跟移动文件命令 一丶常用命令 1.tree命令常用选项 2.cp复制文件命令 3.mv 命令的使用 Linux基础知识第三讲,拷贝文件跟移动文件命令 一丶常用命 ...

  8. wpf(第一章 基础知识)

    wpf第一章基础知识:通过vs2015创建wpf程序会在引用里面多出3个核心程序集PresentationCore.PresentationFramework.WindowsBase.并且会在解决方案 ...

  9. Linux基础知识与基础命令

    Linux基础知识与基础命令 系统目录 Linux只有一个根目录,没有盘符的概念,文件目录是一个倒立的树形结构. 常用的目录功能 bin 与程序相关的文件 boot 与系统启动相关 cdrom 与Li ...

  10. Shell编程(二)——shell的基础知识及常用命令

    shell的基础知识 一.bash有以下特点: 1.记录命令历史 2.指令和文件名补全 3.别名 alias rm='rm -i' 4.通配符 * 0个或多个字符 ?​匹配一个字符 5 输入输出重定向 ...

随机推荐

  1. Tensorflow和pytorch安装(windows安装)

    一. Tensorflow安装 1. Tensorflow介绍 Tensorflow是广泛使用的实现机器学习以及其它涉及大量数学运算的算法库之一.Tensorflow由Google开发,是GitHub ...

  2. Nginx location配置 正则表达式

    一. location 的匹配符 Syntax: location [ = | ~ | ~* | ^~ ] uri { ... }location @name { ... }     1.  语法格式 ...

  3. vi/vim编辑器操作梳理

    1. vi/vim编辑器详细使用讲解 1.1 vi/vim编辑器的3种模式 1.2 vi/vim编辑器操作说明 参数/命令/模式 说明 ###普通模式   :set nu  显示行号 :set non ...

  4. 部署LAMP环境搭建一个网站论坛平台

    修改主机名 Hostname openstack-001 Hostname Login 修改本地域名解析 Vi /etc/hosts 最后一行添加 192.168.1.56 openstack-001 ...

  5. 在列表中动态设置元素的id

    <div class="col-6" v-for="(item,i) in showpics" :key="i"> <im ...

  6. 迁移桌面程序到MS Store(14)——APPX嵌入WCF Service以Admin权限运行

    Windows10 1809版本开始,微软又对UWP开放了新的Capability:AllowElevation. 通过这个新的Capability,UWP APP能够在运行时向用户请求Admin权限 ...

  7. JS循环解决任意日期间的间隔天数

    用JS循环解决任意日期间的间隔天数,并求截止日期是周几 y1=1900 m1=1 d1=1 y2=2000 m2=5 d2=3 days=0 ydays=0 mdays=0 ddays=d2-d1 f ...

  8. opencv —— calcHist、minMaxLoc 计算并绘制图像直方图、寻找图像全局最大最小值

    直方图概述 简单来说,直方图就是对数据进行统计的一种方法,这些数据可以是梯度.方向.色彩或任何其他特征.它的表现形式是一种二维统计表,横纵坐标分别是统计样本和该样本对应的某个属性的度量. 计算直方图: ...

  9. Flume 自定义拦截器 多行读取日志+截断

    前言: Flume百度定义如下: Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据:同时,F ...

  10. dict的使用

    Python字典是可变类型数据,可以存储任意对象,如字符串,数字,元组,列表等. 字典的创键 字典有键key和值value组成,使用键值对链接:,字典也称为关联数组或哈希表. dict_person ...