随笔分类 -  WPF

OpenExpressApp:精通 WPF UI Virtualization
摘要:本篇博客主要说明如何使用 UI Virtualization(以下简称为 UIV) 来提升 OEA 框架中 TreeGrid 控件的性能,同时,给出了一些学习 UIV 的资源。问题 最近对 OEA 的 TreeGrid 控件进行了比较大的改造,并使用新的控件来替换了系统中所有的 DataGrid 控件。新的 TreeGrid 控件实现了很多新的功能,(之后会写一篇文章说明),但是最后遗留了一个问题:由于使用它替换了原来的 DataGrid,而 DataGrid 默认是支持 UI Virtualization 的,当有些界面的数据量比较大时,没有支持 UIV 的TreeGrid 控件就显得有些. 阅读全文

posted @ 2012-02-17 20:02 周 金根 阅读(3176) 评论(0) 推荐(4) 编辑

WPF:从WPF Diagram Designer Part 4学习分组、对齐、排序、序列化和常用功能
摘要:在前面三篇文章中我们介绍了如何给图形设计器增加移动、选择、改变大小及面板、缩略图、框线选择和工具箱和连接等功能,本篇是这个图形设计器系列的最后一篇,将和大家一起来学习一下如何给图形设计器增加分组、对齐、排序、序列化等功能。WPF Diagram Designer - Part 4分组:Group, Ungroup由于WPF不允许一个对象作为多个其他元素的子对象存在,而当移动父对象时,模板也会Unl... 阅读全文

posted @ 2010-08-19 15:03 周 金根 阅读(6395) 评论(6) 推荐(2) 编辑

WPF:从WPF Diagram Designer Part 3学习如何给设计器增加连接线功能
摘要:通过前面介绍的从WPF Diagram Designer Part 1学习控件模板、移动、改变大小和旋转和从WPF Diagram Designer Part 2学习面板、缩略图、框线选择和工具箱,我们学会了如何建立图形设计器的基本移动、选择、大小、旋转、缩略图、框选等基本功能。对于建模支持来说,流程图是必不可少的一种图形,那么我们如何让图形设计器支持在设计对象之间画上箭头呢?本篇将介绍图形设计器... 阅读全文

posted @ 2010-08-19 09:56 周 金根 阅读(9727) 评论(3) 推荐(4) 编辑

WPF:从WPF Diagram Designer Part 2学习面板、缩略图、框线选择和工具箱
摘要:在从WPF Diagram Designer Part 1学习控件模板、移动、改变大小和旋转中介绍了图形设计器的移动、大小和旋转等功能的实现,本篇继续第二部分,学习设计面板、缩略图、框线旋转和工具箱等功能的实现。WPF Diagram Designer - Part 2设计面板(Designer Canvas :variable size, scrollable)  在从WPF Diagram D... 阅读全文

posted @ 2010-08-17 16:51 周 金根 阅读(9624) 评论(3) 推荐(4) 编辑

测试:VS2010的Coded UI Test参考内容列表
摘要:本篇是一个内容索引,对测试不感兴趣的可以马上飘过:)前几篇IronRuby的文章都是围绕着自动化测试来写的,这个测试框架使用了微软的CodedUI Test的几个dll功能来写的。学习任何新的技术和事务,网上查找资料是最容易想到,也是最方便快捷的方式,在Mathew Aniyan的blog中列了一些更全的参考内容列表,摘录在此以备忘之,也给对CodedUI测试感兴趣的朋友一个学习参考索引,通过查看... 阅读全文

posted @ 2010-06-30 08:51 周 金根 阅读(7440) 评论(3) 推荐(2) 编辑

信息系统开发平台OpenExpressApp - 如何解决ComboBox.TextProperty绑定带来问题的来龙去脉
摘要:前一阵子写了好几篇处理WPF内存泄漏和bug的blog,本篇继续,主要围绕一下ComboBox的绑定问题来讲,通过此bug的分析和解决过程,希望能给大家对处理bug带来一些思路。问题描述  在OpenExpressApp中一直没有注意,测试人员提交了一个bug,现象是这样的:选择左边任意一个列表项后,再选择一个PBS模板切换左边列表项后,发现右边PBS模板显示为空白,没有内容发现问题  既然是下拉... 阅读全文

posted @ 2010-06-18 18:00 周 金根 阅读(2719) 评论(8) 推荐(3) 编辑

WPF - 下载.Net4 Framework源码,查找OpenExpressApp中DataGrid枚举值更新错误的原因
摘要:OpenExpressApp之前使用了DataGrid来作为列表控件,在内置支持的属性编辑方式中介绍了枚举类型的使用,之前在.Net35下都是好的,一切正常,但是前一阵子OpenExpressApp升级到了.Net4了,对于枚举属性的列表控件编辑时会出现错误,更新一个枚举值后,控件显示有错误,如下所示:查看堆栈,发现只能看到一个代码段,其余的都是.Net Framework内部的代码,看了代码方法... 阅读全文

posted @ 2010-06-09 18:10 周 金根 阅读(3720) 评论(21) 推荐(5) 编辑

WPF内存泄露:CollectionViewSource.GetDefaultView导致Cache对象
摘要:在使用OpenExpressApp进行WPF应用开发过程中遇到多个内存泄漏的地方,昨天在WPF不明内存泄露已解决,白头发也没了中讲到了如何解决由于属性跟踪事件强引用导致的内存泄漏问题,本篇介绍一下由于CollectionViewSource.GetDefaultView导致的内存泄漏问题。发现问题  还是昨天WPF不明内存泄露已解决,白头发也没了中说的场景,关闭模块后仍旧保留了对象的引用,ANTS... 阅读全文

posted @ 2010-06-03 09:52 周 金根 阅读(3715) 评论(3) 推荐(2) 编辑

WPF不明内存泄露已解决,白头发也没了
摘要:在使用OpenExpressApp进行WPF应用开发过程中遇到多个内存泄漏的地方,在上一篇中求助了一个内存泄露问题【WPF不明内存泄露原因,头发都白了几根】,本篇与大家分享一下如何解决此问题的过程。问题发现  用户使用产品时,使用久了会报出内存溢出错误,于是开始查找内存泄露问题。在【WPF -.Net 4.0解决了DataGrid分组时的内存泄露】中介绍了一个DataGrid内存泄露问题,这里主要... 阅读全文

posted @ 2010-06-02 14:12 周 金根 阅读(9729) 评论(14) 推荐(6) 编辑

求助:WPF不明内存泄露原因,头发都白了几根
摘要:在使用OpenExpressApp进行WPF应用开发过程中,通过点击模块列表可以打开模块,模块显示在TabControl中,如下图所示:其中TabItem的Content为一个ListObjectView生成的UI,存放的内容关联着一个业务对象列表。当我关闭页签时,用ANTS Memory Profiler 5查看对象,发现虽然窗体关了,但是内存对象始终存在。查看这个内存泄露有两天了,但是苦于对W... 阅读全文

posted @ 2010-06-02 09:00 周 金根 阅读(3606) 评论(15) 推荐(2) 编辑

WPF -.Net 4.0解决了DataGrid分组时的内存泄露
摘要:在OpenExpressApp中框架自带一个【部门管理】模块,其中【功能权限】设置时用了DataGrid,并且使用了DataGrid的分组功能,UI如下:用户反应在使用过程中,来回切换【业务对象】进行功能权限设置时,切换多次后会发现允许速度慢的和蜗牛一样。既然这么明显,打开任务管理器,未设置功能权限时内存消耗如下图为50496:来回切换20次后,发现内存飚升为94580,如果模块负责一些的话,估计... 阅读全文

posted @ 2010-05-20 14:43 周 金根 阅读(4860) 评论(11) 推荐(2) 编辑

.Net下如何跨语言调用Delphi写的报表引擎
摘要:我去年上半年之前一直使用的是Delphi,公司在这上面也积累了很多公共资源。在06年9月实现了一个功能强大的报表引擎,公司到现在基本每个项目组都在使用它做报表。现在在.Net下,使用OpenExpressApp,暂时也没有足够精力去重新开发一个报表引擎(OpenReport),所以就想到先重用以前的报表引擎。  下面就介绍一下如何在WPF中使用Delphi下的功能。封装Delphi引擎为一个OCX... 阅读全文

posted @ 2010-03-26 10:25 周 金根 阅读(3312) 评论(9) 推荐(2) 编辑

开源 - WPF报表引擎
摘要:报表是每个做信息系统产品人员都应该关注的一部分,在WPF下很多人使用FlowDocuments来生成报表,这个虽然不错,但是对于复杂的报表来说还是需要一个报表引擎。Open-Source .NET WPF Reporting Engine “This project allows you to create reports using WPF (WindowsPresentation Foundation). Its supports headers and footers, DataTablebinding, barcode generation, XPS creation and mo.. 阅读全文

posted @ 2009-12-19 10:22 周 金根 阅读(14103) 评论(10) 推荐(11) 编辑

WPF - 模板查看工具:Show Me The Template及如何查看第三方主题
摘要:在学习WPF的模板(DataTemplate、ItemsPanelTemplate、ControlTemplate)时,经常会想看看WPF内建的控件模板。在《WPF - 资源收集》的Debugging and Development Utilities中我列了一个工具Show me the template,它可以查看5种主题的内建模板,通过在这些模板基础上修改建立自己的模板会比从头自己开始简单的多。运行界面如下:如何修改为查看第三方模板 在reuxables提供了两个free的样式,其中一个是inc,我觉得还不错,OpenExpressApp准备支持这个样式,界面如下:但是它并不提供x... 阅读全文

posted @ 2009-12-04 22:38 周 金根 阅读(6382) 评论(1) 推荐(1) 编辑

WPF - Group分组对ListBox等列表样式的约束
摘要:在做WPF主题支持时,出现一个分组引起的莫名错误,可是折腾了我一番。在没有使用样式时,列表分组很正常,使用了别人写的ListBox列表样式后,发现GroupItem分组区没有内容,是空的,本篇把这一问题的解决过程给大家说一下,做主题时可以注意分组对列表样式的限制了。ListBox增加分组  WPF为ItemsControl提供很多的样式扩展,要想实现列表分组也很简单,只需要做以下几步就可以了:给列... 阅读全文

posted @ 2009-12-04 12:14 周 金根 阅读(9457) 评论(4) 推荐(2) 编辑

信息系统开发平台OpenExpressApp - 支持WPF主题样式
摘要:OpenExpressApp中有一个项目【OpenExpressApp.Module.WPF.Style】,它作为以后UI样式扩展用,以前只是放在那里,其实没有做什么工作,主要也就是告诉大家后期会增加主题样式。前期做框架、做引擎时,由于侧重点不一样,所以有时经常被人说做出来的东西真丑:)所以最近就花了两天把样式扩展加进来了。目前主要从网上下载了微软的一些样式,还没有扩充OEA内部控件的样式,界面如... 阅读全文

posted @ 2009-12-04 12:01 周 金根 阅读(3624) 评论(1) 推荐(4) 编辑

WPF - 图形设计器(Diagram Designer)
摘要:OpenExpressApp计划中包括建模工具,计划是采用MetaEdit+模型来作为元模型,使用codeproject的《WPF Diagram Designer》一系列文章来做为设计器实现参考,本篇介绍一下codeprojcet的这四个文章,推荐给对图形设计器感兴趣的人去看看,通过WPF的模板功能和其他功能可以很方便的设计出图形编辑器。等OEA参考实现后我会进一步详细说明如何制作建模工具。WP... 阅读全文

posted @ 2009-11-23 20:05 周 金根 阅读(15893) 评论(6) 推荐(5) 编辑

WPF - Visual调试工具Snoop
摘要:Snoop经过很长一段时间,最近更新到支持NET 3.5了,它是一个WPF运行时对Visual UI调试的一个工具,最近我用过它调试修改过一个bug,在此介绍给大家。Snoop可以在Installer下载安装,它的代码也是公布的,可以在Download Source下载,感兴趣的也可以看看,我现在还没有看:)运行Snoop下载安装后,运行Snoop.exe后出现一个类似工具条的界面:下拉框中显示的... 阅读全文

posted @ 2009-11-20 08:33 周 金根 阅读(11756) 评论(5) 推荐(6) 编辑

WPF - 轻量级的开源XAML编辑器Kaxaml
摘要:KaXaml是一个轻量级的XAML编辑器,它的创建时为了更好的开发使用WPF。我很早就在用它进行学习Xaml,现在也一直在用,感觉还不错,所以在这里做个简单介绍,希望KaXaml能够带着刚学习的朋友们更好的学习WPF。开源KaXaml是开源的,在codeplex上进行了发布,大家除了使用它之外,还可以看看它的代码。首页内容如下:Project descriptionKaxamlis a light... 阅读全文

posted @ 2009-11-19 20:41 周 金根 阅读(13682) 评论(6) 推荐(3) 编辑

WPF - 本质:数据和行为
摘要:如果自己来做一个UI框架,我们会首先关注哪些方面?我想UI框架主要处理的一定包括两个主要层次的内容,一个是数据展现,另一个就是数据操作,所以UI框架必须能够接收各种不同的数据并通过UI界面展现出来,然后可以通过控件行为来操作这些数据,也就是UI框架的数据(Data)和行为(Behavior)。  本篇从总体上讲解一下WPF如何处理和操作Data,看完之后大家应该对WPF框架如何把数据转变为展现界面... 阅读全文

posted @ 2009-11-19 19:47 周 金根 阅读(2796) 评论(4) 推荐(3) 编辑

导航

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