前言
优缺点:
传统桌面应用程序开发,我们过去常常使用winform进行界面搭建开发,但是winform在实际操作中会展现一些局限性,例如很多控件不支持透明度设置,或者根据UI设计师设计的样式,winform自带的控件无法通过调整属性来实现,只能通过自绘或者找寻其他第三方控件,具有一定局限性,而WPF脱离了对传统windows控件的依赖,可以展现更炫酷的界面。
但是尽管有上述的优势,也并不是说WPF就一定比winform开发强,这取决于我们开发桌面应用程序的需求是什么,winform技术比较成熟,开发速度也不慢,而WPF 需要大量内存以及CPU的代价来实现普通功能,但WPF对于屏幕的自适应又比winform优秀得多。
所以说,选择什么方式都是能实现编程开发的,但要根据实际的开发需求选择合适的技术,能更高效的进行开发(简单点就是追求桌面软件的炫酷不在意性能选wpf,对界面没有需求或要求性能还是winform好些)。
ps:这里讲的是桌面应用程序的开发,就算是wpf的性能,也是远超web的,所以针对网上的一些桌面应用程序终会被web取代的说法我不太认同,例如我现在处于的地球物理探测相关的行业,web处理地质勘探复杂的计算会吃不消,在实际开发中就凸显了桌面软件的优势,但是,技术是不断更新的,我们不能单说某一种好,某一种一定不好,多接触,不断学习,才能不被这个行业淘汰。
相同点和不同点:
都可使用c#语言进行后台逻辑开发,类似的基本设计器,一样给事件编写代码,所以会了其中一种,上手另一种会比较简单。但不同的是前端,属于两套界面渲染方式。一个是对传统windows界面元素的封装,通过gdi绘制,另一个是全新的dx渲染绘制的界面。wpf为前后端分离,需要学习xaml,有全新的UI描述语言,特别是可以通过模板的嵌套实现复杂的元素,例如通过style实现类似css的功能,通过比winform完善的多的数据绑定机制实现业务逻辑可以专心对数据而不是界面进行开发(类似网页开发)。
闪光点:
设计人员可以用Expression Studio、Blend等工具进行界面设计,然后以XAML的形式直接保存,无需转换则可直接在VS中编译,程序猿则只需要开发后台逻辑代码。
基本功能
- 包含了所有图形效果,如图形、2d图形、3d图形、文本、音频、视频、和显示效果。
- 包含强大的动画效果,动画可以应用前面的所有元素。
- 提供了基本的打印和报表服务。
- 支持键盘、鼠标、手写笔、触摸屏、蓝牙录入、视频捕捉等
创建工程并了解工程
-
本教程开发环境:Windows 7专业版
-
本教程开发工具:Visual Studio 2019 版本 16.5.0
创建工程
这里和winform类似,不多描述。个人习惯用.net4.6.1框架。
App.xaml
App.xaml做的工作如下:
- 创建Application对象,并设置其静态属性Current为当前对象。
- 根据StartupUri创建并显示UI。
- 设置Application的MainWindow属性(主窗体)。
- 调用Application对象的Run方法,并保持一直运行直到应用关闭。
ps:类似winform的Program文件Main函数。
然后自己创建一个Program文件,写上对应main函数,也能运行。
主窗口
winform中我们有“主窗口”的概念,WPF也有。
默认创建工程后,也会默认创建一个主窗口。如上App.xaml指定的MainWindow.xaml就是默认创建的主窗口。
创建子窗体的方式也和winform一致。