命令——WPF学习之深入浅出】的更多相关文章

WPF学习之深入浅出话命令   WPF为我们准备了完善的命令系统,你可能会问:“有了路由事件为什么还需要命令系统呢?”.事件的作用是发布.传播一些消息,消息传达到了接收者,事件的指令也就算完成了,至于如何响应事件送来的消息事件并不做任何限制,每个接收者可已用自己的行为来响应事件.也就是说,事件不具有约束力.命令和事件的区别就在于命令具有约束力. 的确,在实际编程工作中,即使只用事件不用命令程序的逻辑一样被驱动的很好,但我们不能够阻止程序员按照自己的习惯去编写代码.比如保存事件的处理器,程序员可以…
WPF为我们准备了完善的命令系统,你可能会问:"有了路由事件为什么还需要命令系统呢?".事件的作用是发布.传播一些消息,消息传达到了接收者,事件的指令也就算完成了,至于如何响应事件送来的消息事件并不做任何限制,每个接收者可已用自己的行为来响应事件.也就是说,事件不具有约束力.命令和事件的区别就在于命令具有约束力. 的确,在实际编程工作中,即使只用事件不用命令程序的逻辑一样被驱动的很好,但我们不能够阻止程序员按照自己的习惯去编写代码.比如保存事件的处理器,程序员可以写Save().Sav…
图形用户界面应用程序较之控制台界面应用程序最大的好处就是界面友好.数据显示直观.CUI程序中数据只能以文本的形式线性显示,GUI程序则允许数据以文本.列表.图形等多种形式立体显示. 用户体验在GUI程序设计中起着举足轻重的作用-----用户界面设计成什么样看上去才足够的漂亮?控件如何安排才简单易用并且少犯错误?这些都是设计师需要考虑的问题.WPF系统不但支持传统的Winfrom编程的用户界面和用户体验设计,更支持使用专门的设计工具Blend进行专业设计,同时还推出了以模板为核心的新一代设计理念.…
在上一篇中,我们学习了WPF的路由事件,而在本节将学习一个更为抽象且松耦合的事件版本,即命令.最明显的区别是,事件是与用户动作相关联的,而命令是那些与用户界面想分离的动作,例如我们最熟悉的剪切(Cut).复制(Copy)和粘贴(Paste)命令.这带来的好处是:命令可以实现复用,减少了代码量,从而可以在不破坏后台逻辑的条件下,更加灵活地控制你的用户界面.然而,命令并不是WPF特有的,早在MFC中已经有了类似的机制,然而,在WPF之前使用命令是一件很烦琐的事情,因为需要考虑状态间的同步问题.WPF…
WPF(WindowsPresentation Foundation)是微软推出的基于Windows Vista的用户界面框架,属于.NET Framework 3.0的一部分.它提供了统一的编程模型.语言和框架,真正做到了分离界面设计人员与开发人员的工作:同时它提供了全新的多媒体交互用户图形界面. 在 WPF的框架下,可以使用C#和xmal语言来设计界面.两种设计方法各自的好处,xmal语言是一种标记性语言,使用比较简单和灵活.C#下设计和一般 的设计差别不大,但是要注意WPF下的类和接口等.…
WPF学习之路初识   WPF 介绍 .NET Framework 4 .NET Framework 3.5 .NET Framework 3.0 Windows Presentation Foundation (WPF) 是下一代显示系统,用于生成能带给用户震撼视觉体验的 Windows 客户端应用程序. 使用 WPF,您可以创建广泛的独立应用程序以及浏览器承载的应用程序.示例包括下图中显示的 Contoso Healthcare Sample Application(Contoso Heal…
http://www.jikexueyuan.com/course/1231_3.html?ss=1 WPF入门教程系列二——Application介绍 http://www.cnblogs.com/chillsrc/p/4471584.html WPF学习笔记三 依赖属性 http://www.cnblogs.com/xiongpq/archive/2010/06/29/1767905.html WPF之深入浅出话事件 http://blog.csdn.net/fwj380891124/art…
<深入浅出WPF> 前言: C#专业的朋友推荐的WPF入门书籍<深入浅出WPF>,没学过的朋友从今天开始和我一起开启WPF学习之旅吧! 什么是WPF? WPF 是windows Presentation Foundation 的简称,顾名思义是专门用来编写程序表示层的技术和工具. WPF是微软新一代开发技术,涵盖了桌面应用程序开发.网络应用程序开发和移动应用程序开发,是微软开发技术未来十年的主要方向. WPF 与Silverlight 之间的关系? Silverlight 是WPF…
本文是WPF学习10:基于MVVM Light 制作图形编辑工具(1)的后续 这一次的目标是完成 两个任务. 画布 效果: 画布上,选择的方案是:直接以Image作为画布,使用RenderTargetBitmap绑定为Image的图片源,这样可以为后续的导出图片功能提供很大的便利. 对拖动栏XAML进行如下修改: <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="…
WPF内建的COMMAND是GOF 提出的23种设计模式中,命令模式的实现. 本文是WPF学习07:MVVM 预备知识之数据绑定的后续,将说明实现COMMAND的三个重点:ICommand  CommandManager InputBindings COMMAND简介 一般情况我们应用设计如下,一个个控件的各类Handler直接关心了如何实现具体的应用逻辑. 借助COMMAND,我们将具体实现的应用逻辑放在COMMAND中实现,控件只需要绑定相应的COMMAND,而无需关心应用逻辑,从而实现界面…
MVVM是一种模式,而WPF的数据绑定机制是一种WPF内建的功能集,两者是不相关的. 但是,借助WPF各种内建功能集,如数据绑定.命令.数据模板,我们可以高效的在WPF上实现MVVM.因此,我们需要对各种MVVM相关的WPF内建功能集进行了解,才能在扎实的基础上对MVVM进行学习与实践. 本文是WPF学习03:Element Binding的后续,将说明实现数据绑定的三个重点:DataContext INotifyPropertyChanged IValueConverter MVVM简介 MV…
时光如梭,距离第一次写的 WPF学习开发客户端软件-任务助手(已上传源码)  已有三个多月,期间我断断续续地对该项目做了优化.完善等等工作,现在重新向大家介绍一下,希望各位可以使用,本软件以实用性为主,采用MVVM模式(有小部分没有修改过来),小巧.使用方便. 具体功能与更新如下: 计划助手:本软件由m.sh.lin0328@163.com开发与维护,免费使用,如有好的意见或建议,可发送邮件到m.sh.lin0328@163.com,谢谢使用!注(功能与特色):1.本软件使用方便.操作简便:2.…
在WPF学习04:2D绘图 使用Shape绘基本图形中,我们了解了如何绘制基本的图形. 这一次,我们进一步,研究如何将图形变形. 例子 一个三角形,经Transform形成组合图形: XAML代码: <Window x:Class="Transforms.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schem…
WPF学习之资源-Resources WPF通过资源来保存一些可以被重复利用的样式,对象定义以及一些传统的资源如二进制数据,图片等等,而在其支持上也更能体现出这些资源定义的优越性.比如通过ResourceDictionary的支持就可以通过资源来实现换肤功能,在ExpressionBlend中设计的酷炫造型也可以通过导出成资源来很容易的被程序员所引用,本地化的实现,访问另外程序集的嵌入式资源等等.这些都给我们提供了丰富的手段通过资源访问架构来构建丰富的富媒体应用程序.本文简单讲解了WPF Res…
原文:WPF学习拾遗(二)TextBlock换行 下午在帮组里的同事解决一个小问题,为了以后方便,把就把它收集一下吧. 新建一个TextBlock作为最基础的一个控件,他所携带的功能相对于其他的控件要来的比较少, 比较值得关注的属性出了布局用的以外和数据绑定意外,就只剩下的Text属性来. TextBlock的默认内容属性是Text. 对于换行来说,需要关注的也就是Text和Inline2个属性. 常见的TextBlock换行方法 1)转义字符换行 在XAML的后台文件中加入代码 Me.Text…
说到数据绑定,其实这并不是一个新的玩意儿.了解asp.net的朋友都知道,在asp.net中已经用到了这个概念,例如Repeater等的数据绑定.那么,在WPF中的数据绑定相比较传统的asp.net中的数据绑定又有哪些优点呢? 1)具有双向性,即从源到目标是双向的2)及时更新,源发生改变时,能够及时更新UI3)Validation和Converter,前者保证数据的合法性,后者保证数据的有效性接下来,我们将从这么几个方面来说明:Binding对象(对应xaml中的Binding扩展标记).Bin…
docker命令行学习 docker run docker run --help:老实说这条最管用了 docker run -it:交互模式,允许控制台输出 docker run -d:detach,以后台进程的形式运行,可以与-it同时生效 docker run --name "your docker name":指定名称,可以在后续操作替代id docker run -v {host path}:{docker path}:挂载磁盘,下面详细说 docker run --rm: A…
上一章<WPF学习:2.Layout-Panels-Countainers>主要介绍了布局,容器和面板.这一章主要开始介绍Border(边界)和Brush(画刷). 代码地址:http://www.cnblogs.com/keylei203/archive/2013/03/12/keylei203.html 引言 在任何WPF的程序设计中,Border都占主要部分,一般都会使用很多Border装饰用户界面.从直接在window上放置borders到在ListBoxItem上放置Borders,…
WPF学习笔记-用Expression Design制作矢量图然后导出为XAML 第一次用Windows live writer写东西,感觉不错,哈哈~~ 1.在白纸上完全凭感觉,想象来画图难度很大,尤其是象我这样毫无美术基础,毫无艺术细胞的人而言.因此可以找个参照物,比如一张数码照片,对着这个图片描,可以大体上把物体的轮廓描出来. 2.Ctrl+C然后Ctrl+V,在Expression Design中添加一张位图,注意,此时Design会自动新建一个图层(layer),双击修改图层名为Mou…
Linux帮助命令简单学习笔记: 一: 命令名称:man 命令英文原意:manual 命令所在路径:/usr/bin/man 执行权限:所有用户 语法:man [命令或配置文件] 功能描述:获得帮助信息 范例: $ man ls 查看ls命令的帮助信息 $ man services 查看配置文件services的帮助信息 man 1 默认命令 5配置文件 二: 指令名称:info 指令英文原义:information 指令所在路径:/usr/bin/info 执行权限:All User 语法:i…
DB2数据库常用命令数据库学习你可以用 get snapshot for locks on XXX 看是那个表锁了,再从相关的操作去查原因吧 db2pd -d 库名 -locks和db2pd -d 库名 -wlocks window环境下在db2cmd下,使用db2 get snapshot for locks on dbname -查看数据库管理器级别快照信息     db2 get snapshot for dbm -查看数据库级别快照信息     db2 get snapshot for…
原文:WPF 学习笔记-在WPF下创建托盘图标 首先需要在项目中引用System.Windows.Forms,System.Drawing; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.…
原文:WPF 学习笔记-设置属性使窗口不可改变大小 调整Windows下的ResizeMode属性: ResizeMode = NoResize Resize属性是控制Windows是否可以改变大小,怎样改变大小的属性.ResizeMode的所有枚举如下:   成员名称 说明   NoResize 无法调整窗口的大小.标题栏中不显示“最小化”和“最大化”按钮.   CanMinimize 只能最小化和还原窗口.同时显示“最小化”和“最大化”按钮,但只有“最小化”按钮处于启用状态.   CanRe…
一.虚拟机的安装 虚拟机的安装对我来说真可谓是一波三折.打开老师发布的安装教程,简单地浏览了一下,主要步骤都有图文解说.我本来以为这个安装按部就班即可,可哪知道,问题一个接着一个出现. 问题1 在我下载了VirtualBox之后,点击安装,结果却显示安装失败. 最后我在网上搜到了一篇博客,里面的博主遇到了和我相同的问题,并给出了解决方案.我按照他给出的方法,解决了这第一个问题.解决方案可点击下面的链接: 安装VirtualBox时发生严重错误的解决方法 问题2 接着,我遇到了第二个看起来并不难解…
原文:WPF学习笔记(8):DataGrid单元格数字为空时避免验证问题的解决 如下图,在凭证编辑窗体中,有的单元格不需要数字,但如果录入数字后再删除,会触发数字验证,单元格显示红色框线,导致不能执行其他操作. Xaml代码如下: <DataGridTextColumn Header=" ElementStyle="{StaticResource dgCellRigth}"/> 解决思路是用转换器Converter代替StringFormat: Xmal主要代码:…
(应博友们的需要,在文章评论处有源码链接地址,以及WPF学习资料.工具等,希望对大家有所帮助) ...... 承接系列五 上一节讲了,已经把数据保存到数据库并且删除数据,本讲是把已经存在的数据从数据库里读取出来,显示在页面上. 主页面后台代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Window…
本文是WPF学习11:基于MVVM Light 制作图形编辑工具(2)的后续 这一次的目标是完成 两个任务. 本节完成后的效果: 本文分为三个部分: 1.对之前代码不合理的地方重新设计. 2.图形可选择外框颜色,填充颜色的实现简介. 3.拖动图形的实现简介. 修改之前的代码 我们在写代码的时候,经常回头看之前的代码,如果觉得之前的代码有问题,这时候条件如果允许,就改了吧. 做出的改动: 1.修改Image为Canvas. 目的:使图形的缩放和移动这部分的代码实现大大简化. 去除了配置按钮.原因是…
图形编辑器的功能如下图所示: 除了MVVM Light 框架是一个新东西之外,本文所涉及内容之前的WPF学习0-9基本都有相关介绍. 本节中,将搭建编辑器的界面,搭建MVVM Light 框架的使用环境. 界面 <Window x:Class="GraphEditor.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http:…
从WPF学习03:Element Binding我们可以实现控件属性与控件属性的绑定. 从WPF学习07:MVVM 预备知识之数据绑定 我们可以实现控件属性与自定义对象属性的绑定. 而以上两个功能在实际应用中还是不够的,我们经常需要将列表数据与控件属性进行绑定. 例子 ListBox切换人物,下面两个文本框跟随切换,很常用的功能. XAML代码: <Window x:Class="DataTemplate.MainWindow" xmlns="http://schema…
说到数据绑定,其实这并不是一个新的玩意儿.了解asp.net的朋友都知道,在asp.net中已经用到了这个概念,例如Repeater等的数据绑定.那么,在WPF中的数据绑定相比较传统的asp.net中的数据绑定又有哪些优点呢? 1)具有双向性,即从源到目标是双向的2)及时更新,源发生改变时,能够及时更新UI3)Validation和Converter,前者保证数据的合法性,后者保证数据的有效性接下来,我们将从这么几个方面来说明:Binding对象(对应xaml中的Binding扩展标记).Bin…