精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
锐英源精品原创,禁止全文或局部转载,禁止任何形式的非法使用,侵权必究。点名“简易百科”和闲暇巴盗用锐英源原创内容。
最近用WPF写界面,越来越流畅,这里谈一些感受,重点是WPF和Winform界面开发对比,对于熟悉Winform开发的朋友来说,能够帮助快速掌握WPF。
WPF有MVVM机制,里面的VM专门处理数据,和界面是独立的,这个独立带来来分工明确和安全性。Winform开发时,窗口和数据是绑定的,代码是混淆在一个代码文件里,如果不小心改乱了,界面效果也会受影响,这是因为WinForm的一些特殊界面效果是需要写代码调用API来实现,比如双缓冲、自绘制和子类化等等,这些特殊效果让MFC和C#的Winform开发非常杂乱困难,特别是MFC,很多朋友不想用C++也主要是界面和数据的困难。当然WPF要实现一些特殊功能也需要写代码,比如行为和类型转换,但是这一般不用写到一个文件里,比较独立。
WPF的xaml的文本编辑功能强大好用,MFC里如果rc文件加载不了,手工改rc文件,对于复杂的窗体界面是不可能的,编辑器就没有支持,根本不可能看到父子关系,而WPF的xaml里有线指示父子关系,拷贝文本内容到其它地方,设计效果界面对直接刷新。C#的designer.cs里也是文本和设计效果界面分开的,不能互相对比实时查看。
WPF分立,MFC和C#Winform是耦合,不过有些朋友习惯了耦合,可能开始还不适应WPF。
WPF比较新,所以新功能多,比如看WPF的界面元素的属性窗口:
这些属性的数量肯定比Winform开发的数量多,并且属性里可以带表达式,有了表达式,就能让界面的处理由界面负责,不和其它方面牵涉。
对于编辑框TextBox来说,文本配置属性更丰富,还能处理段落间距这类,如果是Winform开发,可能就要写代码指定行高等等,带来不必要的麻烦。