摘要:
public class Bootstrapper : MefBootstrapper { ModuleCatalog moduleCatalog; protected override void InitializeShell() { base.InitializeShell(); Applica 阅读全文
摘要:
Windows钩子Windows应用程序的运行模式是基于消息驱动的,任何线程只要注册了窗口类就会有一个消息队列来接收用户的输入消息和系统消息。为了取得特定线程接收或发送的消息,就要Windows提供的钩子。钩子的概念钩子(Hook)是Windows消息处理机制中的一个监视点,应用程序可以在这里安装一个子程序(钩子函数)以监视指定窗口某种类型的消息,所监视的窗口可以是其他进程创建的。当消息到达后,在目标窗口处理函数处理之前,钩子机制允许应用程序截获它进行处理。钩子函数是一个处理消息的程序段,通过调用相关的API函数,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就捕获该消息,亦 阅读全文
摘要:
WPF中的动画 周银辉动画无疑是WPF中最吸引人的特色之一,其可以像Flash一样平滑地播放并与程序逻辑进行很好的交互。这里我们讨论一下故事板。在WPF中我们采用Storyboard(故事板)的方式来编写动画,为了对Storyboard有个大概的印象,你可以粘贴以下代码到XamlPad来查看效果:在介绍Storyboard之前应该先了解AnimationAnimation提供一种简单的“渐变”动画,我们为一个Animation指定开始值和一个结束值,并指定由开始值到达结束值所需的时间,便可形成一个简单的动画。比如我们指定长方形的宽度由100变化到200,所需时间为1秒,很容易想像这样的动画是. 阅读全文
摘要:
WPF中的ControlTemplate(控件模板)周银辉WPF包含数据模板和控件模板,其中控件模板又包括ControlTemplate和ItemsPanelTemplate,这里讨论一下ControlTemplate。其实WPF的每一个控件都有一个默认的模板,该模板描述了控件的外观以及外观对外界刺激所做出的反应。我们可以自定义一个模板来替换掉控件的默认模板以便打造个性化的控件。与Style不同,Style只能改变控件的已有属性值(比如颜色字体)来定制控件,但控件模板可以改变控件的内部结构(VisualTree,视觉树)来完成更为复杂的定制,比如我们可以定制这样的按钮:在它的左办部分显示一.. 阅读全文
摘要:
[Prism]Composite Application Guidance for WPF(6)——服务 周银辉在Ioc和DI中,最熟悉的一个词语便是服务(Service)了,关于Service的定义以及其与Component(组件)的一些小小区别,请参考Martin Fowler的这篇文章,我们这里主要看看在Prism中是如何实现服务的注册和使用的。1,Service Locator (服务定位器)这是必须首先讨论的问题,当我们的一个类型对象要依赖另外一个服务方可生存的时候,我们应该如何引用这个服务呢?最简单的方式是如下的直接引用:我们可以看到ClassA直接引用了其依赖的两个服务Serv. 阅读全文
摘要:
在进行WPF开发过程中,需要从一个新的线程中操作ObservableCollection,结果程序抛出一个NotSupportedException的错误:This type of CollectionView does not support changes to its SourceCollection froma thread different fromthe Dispatcher thread看其字面意思是跨线程操作不被支持。下面的代码展示了这种错误出现的根源: ObservableCollection users = new ObservableCollection(); ... 阅读全文
摘要:
DateTime.ToString()函数有四个重载。一般用得多的就是不带参数的那个了。殊不知,DateTime.ToString(string format)功能更强大,能输出不同格式的日期。以下把一些情况罗列出来,供大家参考。有些在MSDN上有的就没有列出来了。1. y代表年份,注意是小写的y,大写的Y并不代表年份。2. M表示月份。3. d表示日期,注意D并不代表什么。4. h或H表示小时,h用的是12小时制,H用的是24小时制。5. m表示分钟。6. s表示秒。注意S并不代表什么。格式输出示例年y7string yy = DateTime.Now.ToString("y-MM 阅读全文
摘要:
/// /// 计算本周起始日期(礼拜一的日期) /// /// 该周中任意一天 /// 返回礼拜一日期,后面的具体时、分、秒和传入值相等 public static DateTime CalculateFirstDateOfWeek(DateTime someDate) { int i = someDate.DayOfWeek - DayOfWeek.Monday; if (i == -1) i = 6;// i值 > = 0 ,因为枚举原因,Sunday排在最前,此时Sunday-Monday=-1,必须+7=6。 TimeSpan ts = new TimeS... 阅读全文
摘要:
使用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 阅读全文
摘要:
/// /// 导出Excel /// private void ExportExcel(DataTable ExcelDt) { //导出表格 HSSFWorkbook workBook = new HSSFWorkbook(); ISheet sheet1 = workBook.CreateSheet("表名"); //表头 IRow headerRow = sheet1.CreateRow(0); ... 阅读全文