WPF和WinForm的区别
前言
经常遇到还没开始学习C#的学员问我:Winform和WPF,我应该先学什么?
在很多人眼里,WPF是一门高级技术,而Winform是比较Low的。
今天跟大家聊聊,关于WPF和Winform。
简单聊聊
首先我认为Winform不算是过时的技术,WPF也不算是新技术,两者并不是你死我活的竞争状态,还是不同阶段的不同选择。就像是汽车一样,Winform偏向于家用代步车,WPF偏向于高级的轿车,不同的价格,不同的性能,不同的定位。对于刚毕业几年的年轻人来说,家用代步车无疑是更适合的,但是你只要努力,你肯定会到达购买高级轿车的阶段。所以我的建议是对于初学者来说,学习Winform的成本会更低,学习WPF,你要多学习一门XAML语言。而且不管是代步车还是高级轿车,都需要有驾照,你才能上手,对于Winform和WPF来说,这个驾照就是C#编程语言。但是有了一定编程经验,或者是把Winform玩得比较熟了之后,你再接触WPF,会更加容易上手。
两者区别
如果要说Winform和WPF最大的区别在哪里?
我觉得一方面是布局方式,一方面是驱动方式。
首先谈下布局方式,一般来说,界面布局的方式有两种,一种是拖控件,另一种是通过布局控件来实现,而Winform主要是以拖控件的方式为主,配合布局控件做整体布局,而WPF则恰恰相反,虽然也可以拖控件,但是很少这么做,主要是通过编写XAML代码来实现。
再来说下驱动方式,Winform是基于事件驱动,WPF是基于数据驱动,以操作一个按钮,执行一个查询操作为例,Winform是在按钮的点击事件里,写好查询代码,然后将结果展示在数据控件里,而WPF则是通过按钮绑定一个动作方法,数据控件绑定好数据源,在方法里查询即可,这样做的目的就是尽量减少前后端的耦合。
写在最后
无论是Winform还是WPF,都是微软的一种桌面技术而已,都需要采用C#语言来编程,所以不要去论语言或者技术的好与坏,这样眼界会变窄。不管是什么语言,什么技术,对我们来说,只是一个工具而已,适合自己的才是最好的,能解决问题的就是好的,就像那句谚语,白猫黑猫,能抓老鼠的就是好猫。可能我们现在主要用的语言是C#,但是也许某一天,我们也会去学python、C++、Java,当具备一定的编程思维和编程能力之后,无论以后是学什么语言,我们都会很快上手。