摘要: (1)基本用法xaml中可以实例化各种对象,比如在ResourceDictionary中定义字符串常量: Microsoft YaHei Refresh上述资源字典中定义了字符串常量UID_Refresh, 实际使用步骤:1.在使用的xaml通过ResourceDictionary.MergedDictionaries导入上述资源 2.通过DynamicResource 或... 阅读全文
posted @ 2014-06-14 10:35 muzizongheng 阅读(434) 评论(0) 推荐(0) 编辑
摘要: 首先下载lxml,http://www.lfd.uci.edu/~gohlke/pythonlibs/,然后添加引用from lxml import _elementpath as DONTUSEfrom lxml import etree具体示例:1.添加命名空间#set namespacensmap = {"xsi": "http://www.w3.org/2001/XMLSchema-ins... 阅读全文
posted @ 2014-05-29 09:30 muzizongheng 阅读(915) 评论(0) 推荐(0) 编辑
摘要: 有个好网站http://www.lfd.uci.edu/~gohlke/pythonlibs/, 这个网站可以下载许多非官方的python库的安装包。1.首先去这个网站下载cx_freeze安装包后安装。2.在C:\PythonXX\Scripts\ 下可以看到cxfreeze-quickstart.bat, XX为版本号3.运行cxfreeze-quickstart.bat, 根据向导生成set... 阅读全文
posted @ 2014-05-28 12:12 muzizongheng 阅读(496) 评论(0) 推荐(0) 编辑
摘要: 我们经常会遇到生产者消费者模式,比如前端各种UI操作事件触发后台逻辑等。在这种典型的应用场景中,我们可能会有4个业务处理逻辑(下文以P代表生产者,C代表消费者):1. FIFO(先进先出) P产生1,2,3,4,5,6,3,2 C处理顺序应为1,2,3,4,5,6,3,22.LIFO(后进先出) P产生1,2,3,4,5,6,3,2 C处理顺序应为2,3,6,5,4,3,2,13.Dyna... 阅读全文
posted @ 2014-05-28 12:06 muzizongheng 阅读(486) 评论(0) 推荐(0) 编辑
摘要: 最近在帮同事调试一个类似资源管理器的wpf界面,左边TreeView去遍历大目录时UI卡死,刚开始我以为是在UI线程中调用系统API遍历目录的原因,就改为后台遍历,但是没有效果。根本原因:TreeView的Style中Template对于ScrollViewer的CanContentScroll设置为FALSE, 导致VirtualizingStackPanel的虚拟化失效解决办法:设置Scrol... 阅读全文
posted @ 2014-04-16 13:40 muzizongheng 阅读(372) 评论(0) 推荐(1) 编辑
摘要: 背景:最近遇到一个DataGrid的性能问题:里面大概有4000个数据, 绑定的ItemSource的类也只有一层数据,即简单的List(里面每个是Protocol Buffer自动产生的一个类,10个字段,没子类或者子列表),这么简单的数据源在一台测试机上全选4000条数据然后一直点击滚动条滚动会导致UI卡死, 整个界面无法工作。其中:1.所有的虚拟化相关的都已经设置2.去掉了自定义的style... 阅读全文
posted @ 2014-04-16 13:37 muzizongheng 阅读(202) 评论(0) 推荐(0) 编辑
摘要: ToolTip或者PopUp这个控件在做界面时会经常用到。如何对ToolTip进行自定义呢?1.首先自定义tooltip的controlTemplate,完全清除系统默认效果, 如下: 2.自定义tooltip的contentTemplate, 这样可以专注于tooltip的界面呈现, 而不关心tooltip要显示的字符串, 如下: 3.应用Tooltip的style,如下: 4.以上s... 阅读全文
posted @ 2014-04-16 13:36 muzizongheng 阅读(1775) 评论(0) 推荐(0) 编辑
摘要: 背景:最近遇到一个DataGrid的性能问题:里面大概有4000个数据, 绑定的ItemSource的类也只有一层数据,即简单的List(里面每个是Protocol Buffer自动产生的一个类,10个字段,没子类或者子列表),这么简单的数据源在一台测试机上全选4000条数据然后一直点击滚动条滚动会导致UI卡死, 整个界面无法工作。其中:1.所有的虚拟化相关的都已经设置2.去掉了自定义的style... 阅读全文
posted @ 2014-04-09 13:50 muzizongheng 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 1. 必须在命令行中设置为要分析的进程打开用户堆栈信息:C:\Program Files\Debugging Tools for Windows (x64)>gflags.exe -i YourDebugProcess.exe +ust2. 必须是Debug版本的进程3. 设置好windbg的p... 阅读全文
posted @ 2014-01-17 17:22 muzizongheng 阅读(724) 评论(0) 推荐(0) 编辑
摘要: 最近在使用DataGrid时遇到一个bug, 在客户机器上DataGrid的内容显示不完整, 具体表现为某些列的显示为空。具体的可视树为:DataGridCell > ContentPresenter > TextBlock。其中:TextBlock的Width为Auto, HorizontalAlignment为Stretch;ContentPresenter的With为Auto,Horizon... 阅读全文
posted @ 2014-01-13 14:29 muzizongheng 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 1. 今天帮同事调试一个字体的bug:TextBox中的中文显示大小不一致, 比如包含”杰“,”热“。原因是WPF针对点阵字体需要指定特定字体才能正确渲染, 比如中文应该设置为”SimSun:2. 如果一段文本中既包含中文又包含英文,如何不同设置字体呢?方法:FontFamily支持2个字体设置, 比如FontFamily="Arial,SimSun", 注意英文字体必须在中文字体前。 阅读全文
posted @ 2014-01-13 14:28 muzizongheng 阅读(2268) 评论(0) 推荐(0) 编辑
摘要: 我用MFC做了4年多,后来转到WPF也做了快5年。对于二者,不敢说精通,但应该算入门。结合自己经历,如果不考虑项目需求,我认为新手学习WPF或许更好点。有3点:1)大家都知道最近几年Motorola,Nokia,Kodak等等都没落了。 原因有很多,其中有一点应该是当时老技术还能继续获取高额利润,对新技术投入不足。放到职场上, VC现在是还有好多行业在用,但是这些行业的代码大部分是维护了好多年的代... 阅读全文
posted @ 2013-11-22 11:12 muzizongheng 阅读(435) 评论(0) 推荐(1) 编辑
摘要: DispatcherObject,Dispatcher,Thread之间的关系我们都知道WPF中的控件类都是从System.Windows.Threading.DispatcherObject继承而来, 而DispatcherObject又在构造时与当前线程的Dispatcher关联起来,CurrentDispatcher如果为null则会主动new一个Dispatcher并且在构造时和当前创建它... 阅读全文
posted @ 2013-11-19 14:07 muzizongheng 阅读(1440) 评论(1) 推荐(1) 编辑
摘要: 想要用WPF做出一流的软件界面, 必须要Designer和码农通力合作。理想的情况是平时并行开发,Designer用Expression套件(包括Design和Blend)来设计界面,码农开发Model和ViewModel,后续和xaml一起集成。但是,理想很丰满,现实很骨感。Blend软件毕竟还是小众软件, 很多Designer不愿意放弃自己熟悉的PS,并且Blend支持的滤镜太少,Design... 阅读全文
posted @ 2013-11-15 17:00 muzizongheng 阅读(354) 评论(0) 推荐(0) 编辑
摘要: 关于数据类型,有原子类型,列表类型,字典类型等等,而wpf对应控件有contentControl,itemsControl,headerItemsControl等。控件和类型一一对应,控件和类型之间的交换则通过Binding,中间如果类型和控件需要转换可以通过Converter,交换方向则决定了Binding的mode(OneWay,TwoWay...),数据校验则通过ValidationRule... 阅读全文
posted @ 2013-11-14 15:58 muzizongheng 阅读(257) 评论(0) 推荐(1) 编辑
摘要: 我们平时自定义WPF控件的方法有:Style,DataTemplate,ControlTemplate, DependencyProperty, CustomControl等几个方法。按照优先顺序应该是从左到右。(所谓Style,这里仅包括Setter)对于搜索框,其组成也就是TextBox+Button(清空),这里我们用CustomControl的方法比较合适。1.创建SearchBox继承于... 阅读全文
posted @ 2013-11-13 14:20 muzizongheng 阅读(725) 评论(0) 推荐(0) 编辑
摘要: (CSDN博客目前不支持外链, 只能纯文字) 设计WPF的UI,一般遵循下面的步骤:1.首先分析数据结构2.根据数据结构选择合理控件3.定制外观具体对于历史记录查看UI, 我们可以得知:1.记录是多条的,2.每条记录包含历史的详细信息说白了,就是2张表,一张存储历史记录的时间、地点、人物,另一张存储对应记录的详细内容。根据上述数据结构,我们可以大概设计出UI:1.外层为ItemsControl2... 阅读全文
posted @ 2013-11-08 11:36 muzizongheng 阅读(850) 评论(0) 推荐(0) 编辑
摘要: Evernote是个强大的工具, 这个伴随了我快4年的工具让我积累好多笔记。但是,如何把evernote(印象笔记)中的笔记发布到博客中呢? 自己空闲时候用python 3写了个工具Evernote2Blog, 现在开放给大家。大家到githb上可以把源码拿下来直接使用, 目前支持发布到csdn和metaweblog类型博客,后续计划支持附件上传及外链。简介:PurposeI create Ev... 阅读全文
posted @ 2013-11-05 13:24 muzizongheng 阅读(1269) 评论(0) 推荐(1) 编辑
摘要: 最近在调试项目中的UI时发现几个诡异问题: 1.Grid容器里的GridSplitter设置粗细一样, 但截屏放大后发现线条不一样粗并且明暗不一致,导致打印出来有问题。2.自定义控件的边缘在某些窗体中显示模糊。导致以上问题的原因是:1)UserLayoutRounding为False,导致控件布局相对屏幕若不是整数则不会四舍五入,导致边缘模糊。2)SnapsToDevicePixels默认为fa... 阅读全文
posted @ 2013-11-05 11:18 muzizongheng 阅读(351) 评论(0) 推荐(0) 编辑
摘要: --> 我们项目中对各个系统控件都进行了自定义外观, 比如通过Style。 现象:但是程序实际运行中出现了很诡异的问题, 几个下拉框在屏幕的特定位置会抖动, 具体就是在UI被发大100倍左右明显看到控件的外观有部分上下移动1像素。 具体分析:经过调... 阅读全文
posted @ 2013-11-05 11:17 muzizongheng 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 我们在对控件的ErrorTemplate设置后,有时会出现Value ‘’ can not convert。 为什么会出现呢?原因:如果控件的输入值和null不能转换(比如控件要求的是int或float类型, 而输入信息为空),就会触发默认的ExceptionValidationRule。如何自定义出错信息?首先创建自己的ValidationRule继承于ValidationRule,然后设置V... 阅读全文
posted @ 2013-11-05 11:13 muzizongheng 阅读(201) 评论(0) 推荐(0) 编辑
摘要: --> 我们项目中对各个系统控件都进行了自定义外观, 比如通过Style。 现象:但是程序实际运行中出现了很诡异的问题, 几个下拉框在屏幕的特定位置会抖动, 具体就是在UI被发大100倍左右明显看到控件的外观有部分上下移动1像素。 具体分析:经过调... 阅读全文
posted @ 2013-11-05 10:53 muzizongheng 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 我们在对控件的ErrorTemplate设置后,有时会出现Value ‘’ can not convert。 为什么会出现呢?原因:如果控件的输入值和null不能转换(比如控件要求的是int或float类型, 而输入信息为空),就会触发默认的ExceptionValidationRule。如何自定义出错信息?首先创建自己的ValidationRule继承于ValidationRule,然后设置V... 阅读全文
posted @ 2013-11-05 10:52 muzizongheng 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 最近在调试项目中的UI时发现几个诡异问题: 1.Grid容器里的GridSplitter设置粗细一样, 但截屏放大后发现线条不一样粗并且明暗不一致,导致打印出来有问题。2.自定义控件的边缘在某些窗体中显示模糊。导致以上问题的原因是:1)UserLayoutRounding为False,导致控件布局相对屏幕若不是整数则不会四舍五入,导致边缘模糊。2)SnapsToDevicePixels默认为fa... 阅读全文
posted @ 2013-11-05 10:51 muzizongheng 阅读(305) 评论(0) 推荐(0) 编辑
摘要: --> 我们项目中对各个系统控件都进行了自定义外观, 比如通过Style。 现象:但是程序实际运行中出现了很诡异的问题, 几个下拉框在屏幕的特定位置会抖动, 具体就是在UI被发大100倍左右明显看到控件的外观有部分上下移动1像素。 具体分析:经过调... 阅读全文
posted @ 2013-11-05 10:50 muzizongheng 阅读(673) 评论(0) 推荐(0) 编辑
摘要: PowerDesigner非常强大, 可以利用它完成数据库的设计。 1.下载地址:http://pan.baidu.com/s/1DsLrg2.表设计:建立概念数据模型(Conceptual Data Model,即CDM), 打开File/New Model/Model types/Conceptual Diagram打开默认创建的Diagram_1, 这时可以根据工具面板(Palette)创... 阅读全文
posted @ 2013-10-15 13:54 muzizongheng 阅读(232) 评论(0) 推荐(0) 编辑
摘要: DataGrid控件是一个列表控件, 可以进行过滤,排序等。本文主要针对DataGrid的过滤功能进行分析, 并提供优化方案。 1)DataGrid的过滤过程: 用户输入过滤条件 调用DataGrid的CollectionViewSource的View.Refresh()功能 DataGrid控件内部调用CollectionView的RefreshOverride方法 Collectio... 阅读全文
posted @ 2013-10-08 14:47 muzizongheng 阅读(1946) 评论(0) 推荐(0) 编辑
摘要: 在ITI-9中描述PIX query事务的几个TestCase场景。其中有些是对于Query失败的描述。 ERR 段包含Error location, Error code, Error code text, 以及Error Alernate code和Error Alernate code text.而Error location包含segment id, segment sequence, ... 阅读全文
posted @ 2013-08-21 10:41 muzizongheng 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 实现标准:http://www.ihe.net/Technical_Frameworks/各个实现框架文档, 比如XDS,XCA,PIX,PDQ等测试工具:http://www.ihe.net/Testing_Tools/各个框架的测试工具和验证工具, 比如测试DICOM,HL7是否合法,自动化PIX、PDQ、XDS测试用例等等。 阅读全文
posted @ 2013-08-21 10:40 muzizongheng 阅读(334) 评论(0) 推荐(1) 编辑
摘要: V2:http://hl7book.net/index.php?title=HL7_version_2包括HL7 的介绍,主要章节,每个版本的变化, 各种语言实现的HL7库,免费HL7工具, 最新的xml schema, 实现指南, IHE中相关章节(PIX),以及 hl7相关blog等等。HL7 version 2From Hl7bookJump to: navigation, searchT... 阅读全文
posted @ 2013-08-21 10:39 muzizongheng 阅读(1415) 评论(0) 推荐(1) 编辑
摘要: 最近在开发PIX项目时需要一些工具, 比如PIX各个Actor的测试工具, HL7消息的验证工具等等。 下面列下我找见的几个必备工具。1.http://hit-testing.nist.gov:8080/connectathon-pixpdq/ *****此网站主要是进行PIX 和PDQ消息的验证, 比如你可以选择Profile为PIX, TestCase为... 阅读全文
posted @ 2013-08-17 14:27 muzizongheng 阅读(1061) 评论(0) 推荐(1) 编辑
摘要: RSP_K23消息有MSH, MSA, ERR, QAK, QPD, PID几个segment,其中ERR,PID为可选。 1. 当MSA有err时,ERR段填充出错的详细信息。2. 当MSA为AA,QAK为Ok时,PID不为空; 否则,PID应为空3. 当MSA有err时, QAK的response status应为AE / AR4. 当Q23请求的消息中Wanted return domai... 阅读全文
posted @ 2013-08-14 17:04 muzizongheng 阅读(524) 评论(0) 推荐(0) 编辑
摘要: hl7 v2的ack消息即应答消息构造时有几个注意的地方。 首先,我们看下2个ack的例子:Send:MSH|^~\&|NIST_SENDER^^|NIST^^|NIST_RECEIVER^^|NIST^^|20101101160641||ADT^A01^ADT_A01|NIST-101101160641914|P|2.3.1 EVN||20101020 PID|||14583058^^^NIS... 阅读全文
posted @ 2013-08-09 13:07 muzizongheng 阅读(1139) 评论(0) 推荐(0) 编辑
摘要: hl7消息中有许多segment(段)包含时间类型的Field。常用的MSH, EVN, PID中的时间字段及其格式为: 1. MSH-7, Date/time Of Message为yyyyMMddhhmmss (年月日时分秒)2. EVN-2, Recorded Date/time 以及 EVN-6, Event Occurred为yyyyMMdd (年月日) , 或者yyMMddhhmm ... 阅读全文
posted @ 2013-08-09 13:05 muzizongheng 阅读(437) 评论(0) 推荐(0) 编辑
摘要: 最近在用IronGithub访问Github api时遇到一个问题:the selected file is a solution file but was created by a newer version of this application and cannot be opened原因是从github拿到的irongithub的源码的solution文件为Visual Studio 20... 阅读全文
posted @ 2013-08-06 16:17 muzizongheng 阅读(3353) 评论(0) 推荐(0) 编辑
摘要: 项目中用到DataGrid, 需要在第一列添加checkbox, 可以多选、全选。其中涉及的概念DataTemplate, DataGridCellStyle, DataGridCellControlTemplate,Binding, OnPropertyChanged等。有下面是实现思路:1.继承INotifyPropertyChanged接口,实现OnPropertyChanged方法:pub... 阅读全文
posted @ 2013-08-02 15:17 muzizongheng 阅读(5659) 评论(0) 推荐(0) 编辑
摘要: HL7 v2中的MSH,MSA段都有Message Control ID。 有几点需要注意:1.所有的MessageControlID必须唯一2.对于MSH中的MessageControlID, 发送方自己产生, 保证唯一性。(不管是不是Ack消息)3.对于Ack消息, MSH中的Message control id和规则2相同(自己产生), 但MSA中MessageControlID 应为接收... 阅读全文
posted @ 2013-07-31 14:25 muzizongheng 阅读(491) 评论(0) 推荐(0) 编辑
摘要: 最近在准备PIX的认证, 需要进行mesa测试。 但是Mesa的标准测试工具中没有针对PIX的TestCase, 只是提到NIST的web测试。路径为:http://pixpdqtests.nist.gov:8080/#tests%2Fdriver%2Fversion.htm在此页面中可以选择PIX需要测试的角色,版本等等。 测试步骤:1.选择版本,被测试角色(Actor)2.选择测试事务类型(... 阅读全文
posted @ 2013-07-31 14:23 muzizongheng 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 1.清理缓存 2.安装好抓包工具,比如Fiddler2, 或者F12打开浏览器调试3.安装好Beyond Compare,这样可以利用BC来对比自己程序模拟发送的http包是否和正常的包一致! 阅读全文
posted @ 2013-07-19 09:18 muzizongheng 阅读(528) 评论(0) 推荐(0) 编辑
摘要: python中的print有几种常用的用法: 1. print("first example")2. print("second", "example")3. print("%s"%("third example"))4.print("%(forth)s"%{'forth':'forth example'})5.fifth = "fifth example" print("%(fifth)s"%... 阅读全文
posted @ 2013-07-18 16:33 muzizongheng 阅读(2361) 评论(0) 推荐(0) 编辑
如果我们时时忙着展现自己的知识, 将何从忆起成长所需的无知?