摘要: WPF包含数据模板和控件模板,其中控件模板又包括ControlTemplate和ItemsPanelTemplate,这里讨论一下ControlTemplate。其实WPF的每一个控件都有一个默认的模板,该模板描述了控件的外观以及外观对外界刺激所做出的反应。我们可以自定义一个模板来替换掉控件的默认模板以便打造个性化的控件。与Style不同,Style只能改变控件的已有属性值(比如颜色字体)来定制控件,但控件模板可以改变控件的内部结构(VisualTree,视觉树)来完成更为复杂的定制,比如我们可以定制这样的按钮:在它的左办部分显示一个小图标而它的右半部分显示文本。要替换控件的模板,我们只需要声 阅读全文
posted @ 2013-06-03 17:55 三叶草╮ 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 今天说下wpf中的模板,前面一篇中我们讲到了style,但是style所能做的仅仅是在现有控件的基础上进行修修补补,但是如果我们想彻底颠覆控件样式,那么我们就必须使用这一篇所说的模板。 老外写书都喜欢在篇头搞一个类图,方便我们宏观认识,这里我也上一个。一:控件模板1:ControlTemplate 我们知道wpf的控件都是继承自Control,在Control类中有一个Template属性,类型就是ControlTemplate。那么利用这个ControlTemplate就可以彻底的颠覆控件的默认外观,这里我把一个checkbox变成一个小矩形,蛮有意思的。 1 <Window x:Cl 阅读全文
posted @ 2013-06-03 16:18 三叶草╮ 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 前言MVVM 就是 Model – View – ViewModel 三组功能(类)分割的设计模式。废话不多说,不知道的自己上网查。用 MVVM 我认为最大好处是能对 ViewModel 做单元测试。另外,MVVM 分工也比较明显,方便安排程序员分组分工进行项目,基本设计有了之后可以各自敲。这样的话,写出来,类(class)最起码有三个。比如 Window1 作为 View,Window1ViewModel 作为 ViewModel,实际业务类比如 Sales Order 销售订单作为 Model。View 不一定要是 System.Control.Window,UserControl 也可以 阅读全文
posted @ 2013-06-03 11:50 三叶草╮ 阅读(297) 评论(0) 推荐(0) 编辑
摘要: ViewModelBase和CommandBase代码的整理如下:1.ViewModelBase.cs[c-sharp] view plaincopyusingSystem;usingSystem.ComponentModel;usingSystem.Linq.Expressions;///<summary>///WPFMVVC设计模式ViewMode基本功能类///</summary>publicabstractclassViewModelBase:INotifyPropertyChanged,IDisposable{#regionPublicProperties// 阅读全文
posted @ 2013-06-03 11:48 三叶草╮ 阅读(900) 评论(0) 推荐(0) 编辑