摘要: 建一个用户可以使用Template属性设置外观的WPF控件需要以下几步1、继承自System.Windows.Controls.Control2、设置DefaultStyleKeyProperty3、实现控件功能4、定义默认Sytle5、添加ThemeInfo我借用一个时钟的控件例子,讲解以下每一个步骤第1步 继承自System.Windows.Controls.Control我们的自定义控件继承自System.Windows.Controls.Control,如果有更特别的控件,也可以继承自更复杂的控件。类声明 1: public class Clock : Control 2: {... 阅读全文
posted @ 2014-02-14 17:06 三叶草╮ 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 一般我们在使用TabControl时,需要添加多个tab页,然后把不需要的tab页通过鼠标右键点击ContextMenu菜单的形式进行关闭,下面的代码是直接在tab页上面添加按钮事件,直接点击关闭按钮,就可以关闭tab页。public class CloseableTabItem : TabItem { static CloseableTabItem() { DefaultStyleKeyProperty.OverrideMetadata(typeof(CloseableTabItem), new FrameworkPropertyMetadata(typeof(CloseableTabIte 阅读全文
posted @ 2014-02-14 16:38 三叶草╮ 阅读(431) 评论(0) 推荐(0) 编辑
摘要: 1. 委托Delegate C#中的Delegate对应于C中的指针,但是又有所不同C中的指针既可以指向方法,又可以指向变量,并且可以进行类型转换,C中的指针实际上就是内存地址变量,他是可以直接操作内存的,通过内存地址直接访问变量,直接调用方法。 而C#中的Delegate是强类型的,也就是说在声明委托时就已经指定了该变量只能指向具有特定参数,以及返回值的方法。 使用delegate就可以直接建立任何名称的委托类型,当进行系统编译时,系统就会自动生成此类型。您可以使用delegate void MyDelegate()方式建立一个委托类,并使用ILDASM.exe观察其成员。由ILDASM.e 阅读全文
posted @ 2014-02-14 15:25 三叶草╮ 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 在第二十三节,我们使用CollectionView实现了对于绑定数据的导航,除导航功能外,还可以通过CollectionView对数据进行类似于DataView的排序、筛选等功能。一、数据的排序:使用第二十四节的数据源,查询所有的产品信息: 1: 6: 7: 10: 11: 12: 13: 14: 15: 16: 19: 20: 21: ... 阅读全文
posted @ 2014-02-14 14:15 三叶草╮ 阅读(395) 评论(0) 推荐(0) 编辑
摘要: 这是2年前写了一篇文章http://www.cnblogs.com/Clingingboy/archive/2008/07/03/wpfcustomcontrolpart-1.html我们先来看MSDN对其的介绍Displays the content of aContentControl似乎其是为ContentControl定身量做的.为了理解这一点,首先我们要对WPF内容模型有所了解,上面这篇文章有提到过ContentControl继承自Control,多了Content属性,继承自ContentControl的均可以称之为内容模型的控件.如下这里似乎看不到ContentPresenter 阅读全文
posted @ 2014-02-14 11:02 三叶草╮ 阅读(298) 评论(0) 推荐(0) 编辑