11 2013 档案
摘要:我用MFC做了4年多,后来转到WPF也做了快5年。对于二者,不敢说精通,但应该算入门。结合自己经历,如果不考虑项目需求,我认为新手学习WPF或许更好点。有3点:1)大家都知道最近几年Motorola,Nokia,Kodak等等都没落了。 原因有很多,其中有一点应该是当时老技术还能继续获取高额利润,对新技术投入不足。放到职场上, VC现在是还有好多行业在用,但是这些行业的代码大部分是维护了好多年的代...
阅读全文
摘要:DispatcherObject,Dispatcher,Thread之间的关系我们都知道WPF中的控件类都是从System.Windows.Threading.DispatcherObject继承而来, 而DispatcherObject又在构造时与当前线程的Dispatcher关联起来,CurrentDispatcher如果为null则会主动new一个Dispatcher并且在构造时和当前创建它...
阅读全文
摘要:想要用WPF做出一流的软件界面, 必须要Designer和码农通力合作。理想的情况是平时并行开发,Designer用Expression套件(包括Design和Blend)来设计界面,码农开发Model和ViewModel,后续和xaml一起集成。但是,理想很丰满,现实很骨感。Blend软件毕竟还是小众软件, 很多Designer不愿意放弃自己熟悉的PS,并且Blend支持的滤镜太少,Design...
阅读全文
摘要:关于数据类型,有原子类型,列表类型,字典类型等等,而wpf对应控件有contentControl,itemsControl,headerItemsControl等。控件和类型一一对应,控件和类型之间的交换则通过Binding,中间如果类型和控件需要转换可以通过Converter,交换方向则决定了Binding的mode(OneWay,TwoWay...),数据校验则通过ValidationRule...
阅读全文
摘要:我们平时自定义WPF控件的方法有:Style,DataTemplate,ControlTemplate, DependencyProperty, CustomControl等几个方法。按照优先顺序应该是从左到右。(所谓Style,这里仅包括Setter)对于搜索框,其组成也就是TextBox+Button(清空),这里我们用CustomControl的方法比较合适。1.创建SearchBox继承于...
阅读全文
摘要:(CSDN博客目前不支持外链, 只能纯文字)
设计WPF的UI,一般遵循下面的步骤:1.首先分析数据结构2.根据数据结构选择合理控件3.定制外观具体对于历史记录查看UI, 我们可以得知:1.记录是多条的,2.每条记录包含历史的详细信息说白了,就是2张表,一张存储历史记录的时间、地点、人物,另一张存储对应记录的详细内容。根据上述数据结构,我们可以大概设计出UI:1.外层为ItemsControl2...
阅读全文
摘要:Evernote是个强大的工具, 这个伴随了我快4年的工具让我积累好多笔记。但是,如何把evernote(印象笔记)中的笔记发布到博客中呢?
自己空闲时候用python 3写了个工具Evernote2Blog, 现在开放给大家。大家到githb上可以把源码拿下来直接使用, 目前支持发布到csdn和metaweblog类型博客,后续计划支持附件上传及外链。简介:PurposeI create Ev...
阅读全文
摘要:最近在调试项目中的UI时发现几个诡异问题:
1.Grid容器里的GridSplitter设置粗细一样, 但截屏放大后发现线条不一样粗并且明暗不一致,导致打印出来有问题。2.自定义控件的边缘在某些窗体中显示模糊。导致以上问题的原因是:1)UserLayoutRounding为False,导致控件布局相对屏幕若不是整数则不会四舍五入,导致边缘模糊。2)SnapsToDevicePixels默认为fa...
阅读全文
摘要:--> 我们项目中对各个系统控件都进行了自定义外观, 比如通过Style。 现象:但是程序实际运行中出现了很诡异的问题, 几个下拉框在屏幕的特定位置会抖动, 具体就是在UI被发大100倍左右明显看到控件的外观有部分上下移动1像素。
具体分析:经过调...
阅读全文
摘要:我们在对控件的ErrorTemplate设置后,有时会出现Value ‘’ can not convert。
为什么会出现呢?原因:如果控件的输入值和null不能转换(比如控件要求的是int或float类型, 而输入信息为空),就会触发默认的ExceptionValidationRule。如何自定义出错信息?首先创建自己的ValidationRule继承于ValidationRule,然后设置V...
阅读全文
摘要:--> 我们项目中对各个系统控件都进行了自定义外观, 比如通过Style。 现象:但是程序实际运行中出现了很诡异的问题, 几个下拉框在屏幕的特定位置会抖动, 具体就是在UI被发大100倍左右明显看到控件的外观有部分上下移动1像素。
具体分析:经过调...
阅读全文
摘要:我们在对控件的ErrorTemplate设置后,有时会出现Value ‘’ can not convert。
为什么会出现呢?原因:如果控件的输入值和null不能转换(比如控件要求的是int或float类型, 而输入信息为空),就会触发默认的ExceptionValidationRule。如何自定义出错信息?首先创建自己的ValidationRule继承于ValidationRule,然后设置V...
阅读全文
摘要:最近在调试项目中的UI时发现几个诡异问题:
1.Grid容器里的GridSplitter设置粗细一样, 但截屏放大后发现线条不一样粗并且明暗不一致,导致打印出来有问题。2.自定义控件的边缘在某些窗体中显示模糊。导致以上问题的原因是:1)UserLayoutRounding为False,导致控件布局相对屏幕若不是整数则不会四舍五入,导致边缘模糊。2)SnapsToDevicePixels默认为fa...
阅读全文
摘要:--> 我们项目中对各个系统控件都进行了自定义外观, 比如通过Style。 现象:但是程序实际运行中出现了很诡异的问题, 几个下拉框在屏幕的特定位置会抖动, 具体就是在UI被发大100倍左右明显看到控件的外观有部分上下移动1像素。
具体分析:经过调...
阅读全文