随笔分类 -  WPF

摘要:1.说明之前做过一个小项目,点击按钮,按钮进入倒计时无效状态,计时完成后,恢复原样,现在就实现该效果---带倒计时的按钮2.效果1)正常状态 2)MouseOver(只有背景色变化) 3)点击进入无效状态4)在无效状态下计时5)恢复正常状态3.XAML代码 1 2 4.应用1 5.总结通过此代码,希望给初学者一些启示,有更多想法的同学,多多批评,不吝赐教。文章来源:http://www.cnblogs.com/smlusm/p/3234463.html 阅读全文
posted @ 2014-02-18 17:53 三叶草╮ 阅读(723) 评论(0) 推荐(0) 编辑
摘要:建一个用户可以使用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 三叶草╮ 阅读(306) 评论(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 三叶草╮ 阅读(437) 评论(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 三叶草╮ 阅读(300) 评论(0) 推荐(0) 编辑
摘要:《MEF程序设计指南》博文汇总 在MEF之前,人们已经提出了许多依赖注入框架来解决应用的扩展性问题,比如OSGI 实现以Spring 等等。在 Microsoft 的平台上,.NET Framework 自身内部包含组件模型和 System.Addin。同时存在若干种开源解决方案,包括 SharpD 阅读全文
posted @ 2014-02-12 14:22 三叶草╮ 阅读(250) 评论(0) 推荐(0) 编辑
摘要:public class Bootstrapper : MefBootstrapper { ModuleCatalog moduleCatalog; protected override void InitializeShell() { base.InitializeShell(); Applica 阅读全文
posted @ 2014-02-12 14:17 三叶草╮ 阅读(285) 评论(0) 推荐(0) 编辑
摘要:WPF中的动画 周银辉动画无疑是WPF中最吸引人的特色之一,其可以像Flash一样平滑地播放并与程序逻辑进行很好的交互。这里我们讨论一下故事板。在WPF中我们采用Storyboard(故事板)的方式来编写动画,为了对Storyboard有个大概的印象,你可以粘贴以下代码到XamlPad来查看效果:在介绍Storyboard之前应该先了解AnimationAnimation提供一种简单的“渐变”动画,我们为一个Animation指定开始值和一个结束值,并指定由开始值到达结束值所需的时间,便可形成一个简单的动画。比如我们指定长方形的宽度由100变化到200,所需时间为1秒,很容易想像这样的动画是. 阅读全文
posted @ 2014-02-07 17:28 三叶草╮ 阅读(295) 评论(0) 推荐(0) 编辑
摘要:WPF中的ControlTemplate(控件模板)周银辉WPF包含数据模板和控件模板,其中控件模板又包括ControlTemplate和ItemsPanelTemplate,这里讨论一下ControlTemplate。其实WPF的每一个控件都有一个默认的模板,该模板描述了控件的外观以及外观对外界刺激所做出的反应。我们可以自定义一个模板来替换掉控件的默认模板以便打造个性化的控件。与Style不同,Style只能改变控件的已有属性值(比如颜色字体)来定制控件,但控件模板可以改变控件的内部结构(VisualTree,视觉树)来完成更为复杂的定制,比如我们可以定制这样的按钮:在它的左办部分显示一.. 阅读全文
posted @ 2014-02-07 15:31 三叶草╮ 阅读(310) 评论(0) 推荐(0) 编辑
摘要:[Prism]Composite Application Guidance for WPF(6)——服务 周银辉在Ioc和DI中,最熟悉的一个词语便是服务(Service)了,关于Service的定义以及其与Component(组件)的一些小小区别,请参考Martin Fowler的这篇文章,我们这里主要看看在Prism中是如何实现服务的注册和使用的。1,Service Locator (服务定位器)这是必须首先讨论的问题,当我们的一个类型对象要依赖另外一个服务方可生存的时候,我们应该如何引用这个服务呢?最简单的方式是如下的直接引用:我们可以看到ClassA直接引用了其依赖的两个服务Serv. 阅读全文
posted @ 2014-01-28 16:42 三叶草╮ 阅读(245) 评论(0) 推荐(0) 编辑
摘要:在进行WPF开发过程中,需要从一个新的线程中操作ObservableCollection,结果程序抛出一个NotSupportedException的错误:This type of CollectionView does not support changes to its SourceCollection froma thread different fromthe Dispatcher thread看其字面意思是跨线程操作不被支持。下面的代码展示了这种错误出现的根源: ObservableCollection users = new ObservableCollection(); ... 阅读全文
posted @ 2014-01-27 16:18 三叶草╮ 阅读(307) 评论(0) 推荐(0) 编辑
摘要:使用RDLC报表(一)1 建立数据源启动VS2005新建一个窗体项目,命名为TestProj在左边的窗体内选择“添加新数据源”或在菜单上操作“添加新数据源”:选择后出现对话窗体,选择“数据库”,进入“下一步”:本数据源以SqlServer2000所提供的Northwind数据库为例,因此在数据库内选择驱动程序为SqlServer,具体操作视所用数据库而定(如果连接为Oracle,建议用Oracle所提供的ODP for .NET,地址:http://www.oracle.com/technology/global/cn/software/tech/windows/odpnet/index.ht 阅读全文
posted @ 2013-08-30 16:43 三叶草╮ 阅读(2709) 评论(0) 推荐(0) 编辑
摘要:/// /// 导出Excel /// private void ExportExcel(DataTable ExcelDt) { //导出表格 HSSFWorkbook workBook = new HSSFWorkbook(); ISheet sheet1 = workBook.CreateSheet("表名"); //表头 IRow headerRow = sheet1.CreateRow(0); ... 阅读全文
posted @ 2013-08-30 15:46 三叶草╮ 阅读(1055) 评论(0) 推荐(0) 编辑
摘要:WPF中的路由事件 as U know,和以前Windows消息事件区别不再多讲,这篇博文中,将首先回顾下WPF内置的路由事件的用法,然后在此基础上自定义一个路由事件。1.WPF内置路由事件WPF中的大多数事件都是路由事件,WPF有3中路由策略:具体不多讲,单需要注意的是WPF路由事件是沿着VIsualTree传递的。VisualTree与LogicalTree的区别在于:LogicalTree的叶子节点是构成用户界面的控件,而VisualTree要连控件中的细微结构也算上。VisualTree是LogicalTree的扩展。下面给出一个使用WPF内置路由事件的例子:usingSystem.W 阅读全文
posted @ 2013-08-20 17:41 三叶草╮ 阅读(2175) 评论(0) 推荐(0) 编辑
摘要:如果要做到一个应用程序其基本的内容不变,但改变整个应用程序的外观可以这样做:对于每一套外观定义一个ResourceDictionary在应用程序中,动态加载此应用程序(或窗体)的Resource例如,如下的应用程序,在选择不同的用户时,显示不同的Canvas背景及图片:主题样式A:主题样式B:主题样式C:主题样式A的ResourceDictionary的XAML文件内容: 1: 4: 5: 15: 样式B、样式C的XAML代码与其类似,在这里省略。窗体应用程序的XAML及CS代码如下: 1: 5: 6: 9: ... 阅读全文
posted @ 2013-07-31 15:20 三叶草╮ 阅读(1696) 评论(0) 推荐(0) 编辑
摘要:在Windows中,诸如窗体绘制等功能由GDI实现,放在操作系统内核中。Windows Forms在底层使用的是GDI+。GDI+是GDI的“面向对象包装”,使用C++实现。.NET Windows Forms应用程序中使用的GDI+其实是在C++实现的非托管代码之上又包了一层,从而让我们能使用C#这样的托管编程语言调用GDI+功能绘图。WPF底层使用的是DirectX,就是通常用来开发游戏的那个DirectX。WPF与Windows Forms这两者并没有什么关系。按照微软的意图,WPF是用来取代Windows Form的,所以最新的Visual Studio就使用了WPF开发界面,这是一个 阅读全文
posted @ 2013-06-08 10:58 三叶草╮ 阅读(329) 评论(0) 推荐(1) 编辑
摘要:RelayCommand本来是WPF下面用的一种自定义的command,主要是它用到了事件管理函数,这个SL下面是没有的。不过这部分代码如果修改一下,也可以在SL下面使用,和WPF下面的实现思路差不多。先看下RelayCommand的定义,一共有2种。 1 public class RelayCommand<T> : ICommand 2 { 3 public RelayCommand(Action<T> execute) 4 : this(execute, null) 5 { 6 } 7 8 ... 阅读全文
posted @ 2013-06-07 16:29 三叶草╮ 阅读(776) 评论(0) 推荐(0) 编辑
摘要:查了不少资料,大概理清楚的就是有3种。当然类名可以自己取了,不过为了便于记忆和区分,还是和看到的文章里面用一样的类名。1.DelegateCommand2.RelayCommand3.AttachbehaviorCommand因为MVVM模式适合于WPF和SL,所以这3种模式中也有一些小差异,比如RelayCommand下面的CommandManager方法就是WPF下面的,SL下面无法使用,不过我认为这3种方法中的基本思路都如出一辙,都是出自那位外国牛人的文章里面。主要的区别在于和VIEW中的控件的绑定使用上。有点不同的attachbehaviorcommand是prism4里面的一种设计模 阅读全文
posted @ 2013-06-07 16:28 三叶草╮ 阅读(530) 评论(0) 推荐(0) 编辑
摘要:在讲述自定义命令之前,先了解一下与命令有关的几个要素,就像我们常说的“记叙文六要素”一样,一个完整的命令应当包括:1、命令,这当然是核心部分了;2、命令源:命令是谁发出的;3、目标,命令作用在哪些元素上,如往文本框中粘贴内容,那么该TextBox就是命令目标;严格上说,命令是实现了ICommand接口的类,但是,在际使用中,我们不必这样做,一种有效的方法是在某个类中直接声明一个RouteCommand类的成员字段即可,一般使用Static关键字,这样可以使得命令只与类有关,而不必理会其属于哪个实例。下面,我们一起动手完成一个实例:1、新建一个WPF应用程序,如何新建?(略);2、布局好主窗体, 阅读全文
posted @ 2013-06-04 14:17 三叶草╮ 阅读(415) 评论(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 三叶草╮ 阅读(300) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示