
WPF
qing2005
从事软件实施工作12年,熟悉软件工程和信息系统开发流程。能将用户需求和系统目标在软件实施中体现。从事项目管理工作四年多,从项目经理到产品经理,从项目整体管理到产品研发,从关注技术细节向关注行业、关注利润、关注成本、关注用户的满意度转变。<br>本人能独立编制各种技术文档,熟练绘制各种UML图,以及业务原型设计。并具备良好的沟通能力和组织协调能力,能带领团队取得阶段目标。
展开
-
WPF中全局开启或关闭动画效果
公司开发的WPF项目中,要求有这样一个业务:用户可以开启或关闭动画效果。WPF的绚丽之处就是3D、动画、特效等等,给人非常炫的感觉,但是机器配置较差的用户可能需要关闭动画特效。我甚至遇到一个3D特效在显卡不好机器上,导致应用程序崩溃的情况。可见WPF对机器的要求还是比较高的。如果才能做到呢?需要以下几步就能轻松完成。初始状态:鼠标移动到矩形上颜色更改1.建立两个资源字典,分别为Storyboard原创 2011-06-08 23:38:00 · 7981 阅读 · 1 评论 -
WPF分页DataGrid(二)列右键菜单实现
在"WPF分页DataGrid"中介绍了如何实现分页功能,本文中介绍如果实现右键菜单。见下图:点击菜单项Age,将Age列隐藏,再点击则显示;并实现移动列后,同步显示。要实现功能需要在Loaded事件时给列添加右键菜单。public class PagingDataGrid : DataGrid { …… void PagingDataGrid_Loaded(object sender, Ro原创 2012-06-21 15:46:11 · 12965 阅读 · 1 评论 -
WPF自定义正则验证控件
我在这里介绍一种自定义控件方式的正则验证方法。业务背景不做详细说明,这里以技术背景为主。思路:创建一个控件,使其具有文本框的特性外,还能就行正则验证;依据这个思路,来讲解实现。第一步:创建自定义控件因为要保留TextBox所有特性,所以就继承于TextBox控件即可public class RegexTextBox : TextBox { static RegexTextBox() {原创 2012-06-01 15:54:51 · 8893 阅读 · 1 评论 -
WPF分页DataGrid
最近用到WPF的表格控件,需要使用分页功能,找了很多例子都不是很满意。有些是模仿SL做的DataPager导航条,使用的时候还要和DataGrid组合使用,不是很方便。最好还是继承DataGrid的分页表格控件。 于是自己动手封装了一个分页表格。见图例:先说思路,然后说实现。为什么要使用分页这里不是讨论话题,分页表格需要知道两个结果:总记录数和分页数据集,所以必须暴露Total和ItemsSour原创 2012-05-29 15:24:48 · 24242 阅读 · 16 评论 -
解决DataDirectory路径问题
公司在做一个WPF项目,在开发调试的时候本地运行,在生产环境中以ClickOnce方式运行。问题是在一个数据库的连接字符串上,"……Data Source=|DataDirectory|\数据库文件……",在本地运行时|DataDirectory|指向程序目录,而在ClickOnce方式下指向程序目录下的Data目录。要解决此问题,必须要知道系统如何解析|DataDirectory|,经查阅是通过原创 2012-03-14 08:34:18 · 11511 阅读 · 0 评论 -
WPF三级联动
WPF实现三级联动Grade-->Class-->Student,数据来自Access,采用LinqToAccess,已封装成DLL,数据库在附件中。见图:Code:Window x:Class="Demo16_MasterDetailBinding2.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/原创 2011-04-20 16:41:00 · 5077 阅读 · 3 评论 -
WPF使用装饰器实现SAP焦点样式(改进版)
我在上一篇博文中介绍了如何使用自定义装饰器实现SAP的焦点样式。上次的思路是遍历窗体中的控件,如果是指定类型则使用自定义的装饰器。但是如果要求部分控件使用自定义装饰器,或者用户控件中的控件也要实现,上一种方法是无法完成的。看了MSDN的中“AdornerDecorator“类能为 “可视化树”中的子元素提供 AdornerLayer。用法: Child那么是否能自定义一个AdornerD原创 2011-10-28 14:13:35 · 6060 阅读 · 1 评论 -
WPF使用装饰器实现SAP焦点样式
SAP当焦点进入控件时,会在控件的四个角上出现红框,见下图示例。 要实现这样的功能是有点难度的,幸好WPF提供了装饰器这个玩意,实现起来就容易了。先说一下思路:1.重写控件的装饰器;2.指定窗体上的所有控件使用自定义的装饰器;3.当控件获得焦点时显示装饰器。现在,第一步重写装饰器原创 2011-09-29 11:50:13 · 4822 阅读 · 0 评论 -
MVVM中轻松实现Command绑定(五)获取事件参数EventArgs(2)
在上一节中我介绍了“MVVM中轻松实现Command绑定(四)获取事件参数EventArgs”,通过Loaded事件传递控件对象,然后添加事件方法,这样做是可以的,但是不符合MVVM的思想,今日我介绍另一种方法,通过扩展interactivity的InvokeCommandAct原创 2011-08-11 20:48:22 · 25903 阅读 · 14 评论 -
MVVM中轻松控制ProgressBar
MVVM中要控制进度条其实很方便,但是在开始之前我们要解决一个线程问题。首先WPF的应用程序至少有连个线程,一个是管理UI的线程,一个是绘制UI的线程。我们需要实现类似下载进度的显示,下载线程不能和UI线程相同,否则顾此失彼。一定要创建一个新线程执行操作。通常我们使用Thread原创 2011-08-03 23:11:38 · 8955 阅读 · 1 评论 -
ViewModel之间的通讯
WPF中时常会遇到ViewModel之间的通讯,ViewModel并不知道自己的View,但是一个View发生的更改需要通知另外一个View。举一个例子,软件界面上有个人信息,打开一个界面更改用户的信息后,这时显示个人信息的地方理应发生变化。此场景下更改用户后应该通知另一个显原创 2011-07-27 23:02:01 · 13196 阅读 · 2 评论 -
WPF数据国际化解决方案
在WPF中界面国际化很容易实现,但是数据国际化确实是一个难题。为了解决项目中的需求,我设计了解决方案。思路:1.在数据库中,需要国际化的字段存放国际化key值;2.在xaml中创建多套国际化,key为数据库中的值;3.切换国际化时,加载不同的xaml;4.通过原创 2011-07-22 23:36:36 · 8069 阅读 · 1 评论 -
MVVM中轻松实现Command绑定(四)获取事件参数EventArgs
从原则上说ViewModel中不应该获取View的信息,但是事实是在特殊场合需要,比如正确提交后需要关闭判断,如果ViewModel+View的后置代码实现比较麻烦,希望在ViewModel中一并完成。我在网上看到MVVM Light框架中有一种方法可以实现,但必须使用它的dll原创 2011-07-23 18:37:04 · 18908 阅读 · 5 评论 -
WPF中忽略代码和标记
最近开发的一个WPF项目使用了Prism架构,在设计时经常无法正常显示界面,很让人郁闷。但是运行时是好的。这也不难理解,由于Prism需要使用反射等技术,在设计时不可能正常获取信息,当然无法显示界面。偶然见看到可以通过DesignerProperties.GetIsInD原创 2011-07-12 17:57:15 · 2889 阅读 · 0 评论 -
MVVM中轻松实现Command绑定(二)传递Command参数
我们如果需要在Command中传递参数,实现也很简单。DelegateCommand还有一个DelegateCommand版本,可以传递一个T类型的参数。1.View的Button绑定,其中CommandParameter定义了一个“20”的参数<Win原创 2011-07-12 21:03:47 · 44571 阅读 · 3 评论 -
WPF验证之——必填验证
要事先必填验证,首先要重写ValidationRule类的Validate方法,然后在Binding中指定对应的ValidationRule。第一步:重写ValidationRule的Validatepublic class RequiredValid原创 2011-07-04 22:59:54 · 11843 阅读 · 3 评论