随笔分类 -  小菜的WPF修炼

基于WPF系统框架设计(10)-分页控件设计
摘要:背景 最近要求项目组成员开发一个通用的分页组件,要求是这个组件简单易用,通用性,兼容现有框架MVVM模式,可是最后给我提交的成果勉强能够用,却欠少灵活性和框架兼容性。 设计的基本思想 传入数据源,总页数,当前页码,每页记录数,达到分页显示数据的功能。 优化 我把原本不支持MVVM的源码改善了一下,可能还可以再优化得好些,支持MVVM模式,较果如下图: 添加一解决方案:... 阅读全文
posted @ 2013-09-08 23:18 aganqin 阅读(7067) 评论(9) 推荐(5) 编辑
基于WPF系统框架设计(9)-多值绑定之IMultiValueConverter
摘要:应用场景 我想把View层的一个布局控件和功能按钮传到ViewModel层,达到动态变更布局,同时灵活获取功能按钮的属性,让View和ViewModel完全分离,而不受View层影响。 最后我想到使用IMultiValueConverter实现多参传入ViewModel层来解决,不知道还有没有更好的办法? 基本原理:要将值转换器与 MultiBinding 关联,请创建一个实现 IMulti... 阅读全文
posted @ 2013-08-23 11:09 aganqin 阅读(3621) 评论(0) 推荐(2) 编辑
基于WPF系统框架设计(8)-PasswordBox传值到ViewMode
摘要:应用场景 我要做一个系统登录功能,需要传用户名和密码到ViewModel中,可是PasswordBox传值到ViewModel中好像跟TextBox等控件不一样。这里需要用到附加属性。 附加属性:一个属性本来不属于某个对象,但是由于某种需求而被后来附加上,即把对象放入一个特定的环境后才具有的属性。 作用就是将属性与数据类型(宿主)解耦,让数据类型设计更加灵活。 本质还是依赖属性,二者仅在包装... 阅读全文
posted @ 2013-08-23 11:07 aganqin 阅读(1916) 评论(4) 推荐(1) 编辑
基于WPF系统框架设计(7)-TextBox/PasswordBox在ViewModel中支持回车命令
摘要:应用场景 我现在做一个系统登录功能,要求在PasswordBox上输完密码后回车,能够响应Enter事件,并执行ViewModel中对应的方法。如果登录成功则隐藏当前窗口显示主窗体,登录失败则焦点返回到用户名TextBox中,并全选文字,方便用户再重新输入。 这个在我们制造业自动化流程控制中,做防呆功能是很明显的,因为没有人为去参与。 如果像Winform一样的开发模式,就相对很简单了,现在... 阅读全文
posted @ 2013-08-23 09:55 aganqin 阅读(3582) 评论(6) 推荐(2) 编辑
基于WPF系统框架设计(3)-Fluent Ribbon界面布局
摘要:一个系统框架除了功能菜单导航,有系统内容显示区域,系统状态栏。Silver:Blue:Black:系统界面设计,就不进行技术细节介绍了,主题以框架设计为主,Xaml源码参考: ... 阅读全文
posted @ 2013-08-21 07:38 aganqin 阅读(9955) 评论(2) 推荐(6) 编辑
基于WPF系统框架设计(5)-Ribbon整合Avalondock 2.0实现多文档界面设计(二)
摘要:AvalonDock 是一个.NET库,用于在停靠模式布局(docking)中排列一系列WPF/WinForm控件。最新发布的版本原生支持MVVM框架、Aero Snap特效并具有更好的性能。AvalonDock 2.0版本已经发布了,新版本是用MVVM框架重新编写,似乎也用了Command(命令)模式。2.0版的文档尚未发布,但你可以参考Avalon.TestApp 或者2.0版源码中的Avalon.MVVMTestApp文件夹来查看新的API。前一篇博文有介绍关于AvalonDock使用-《Docking For WPF–AvalonDock》还有一篇也是同类的关于多文档界面设计《基于WP 阅读全文
posted @ 2013-08-20 19:06 aganqin 阅读(7995) 评论(5) 推荐(5) 编辑
基于WPF系统框架设计(2)-Fluent Ribbon之HelloWorld
摘要:Fluent/Ribbon是微软在其最新桌面操作系统Windows 7中使用的图形用户界面。 Windows平台的进化,伴随着系统图形界面的重新设计。从Windows XP到Windows Vista,最大的革新就是Windows Aero的引入。在Windows 7 中,Aero被保留下来。 但是,在未来,Windows 7的图形用户界面将朝着Office 2007相同的方向,名称为Fluent/Ribbon。现在,我们用WPF作为用户界面开发语言,来做一个简单的实例作为学习的开始。准备工作:需要下载第三方组件为:Fluent.dll,下载网址:http://fluent.codeplex. 阅读全文
posted @ 2013-08-20 09:42 aganqin 阅读(9334) 评论(17) 推荐(6) 编辑
基于WPF系统框架设计(1)-为什么要仿Office2010 Ribbon?
摘要:为什么系统框架设计使用Ribbon导航模式? 这得从Office软件的演变说起。微软为什么最后选择使用Ribbon,也许就是很多系统设计要使用Ribbon做功能导航的原因。你是否还记得曾经使用过的Microsoft Office界面?自Microsoft Office诞生之日起,工具栏和菜单栏主导着用户的软件使用操作。并在Microsoft Office 2.0中引入了嵌入式对话框。随着Microsoft Office版本的更新,功能的增加,菜单栏和工具栏的数量也随之增多。在Microsoft Office95中,工具栏已曾加至9个。而在Microsoft Office 97版本中,增加了诸多 阅读全文
posted @ 2013-08-19 22:00 aganqin 阅读(6532) 评论(24) 推荐(9) 编辑
基于WPF系统框架设计(4)-Ribbon整合Avalondock 2.0实现多文档界面设计(一)
摘要:前些时间研究了WPF的一些框架,感觉基于Prism框架的MVVM模式对系统的UI与逻辑分离很好,所以就按照之前Winform的框架设计,用WPF做了一套,感觉比Winform要强很多。MVVM模式和MVC模式一样,主要目的是分离视图(View)和模型(Model),有几大优点1. 低耦合。视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的"View"上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。2. 可重用性。你可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。3. 阅读全文
posted @ 2013-08-17 21:54 aganqin 阅读(7569) 评论(5) 推荐(3) 编辑
Docking For WPF–AvalonDock
摘要:桌面程序的应用,不可避免的就会用到大量的布局控件,之前的一个项目也想过去做类似于Visual Studio的那种灵活的布局控件,也就是界面上的控件能够实现拖拽放置、隐藏、窗口化等一系列的操作,但由于开发时间以及需求的原因,没有太严格要求这方面功能的实现,也就只能算是想过一下而已,实际用的时候还是固定布局,但是最近接触到新的项目,需要这方面的应用就不得不自己动手查找和做这样的东西了。 有朋友推荐RadControls里了控件——RadDocking,下载安装RadControls后,发现他里边的控件的确做的很不错,而且Demo也很详细,RadDocking也能满足我的需求,使用也还算方便,但是. 阅读全文
posted @ 2013-07-24 08:55 aganqin 阅读(10511) 评论(6) 推荐(5) 编辑