WPF界面与逻辑处理的转变
一、界面交互对象的区别
搭积木
Winform最基本的功能实现,拖控件
也符合认知
从自己看到的东西入手 ,看不见的东西理解复杂,要自己去想象扩展
有这样一个问题
控件、拆开
重新实现组装实现
Winform要复杂一些,GDI绘图,画笔,线,正方形,贴图,画文字

完全处于抽象思维,看不到实际的显示效果,自己一点点去调整
位置、比例、大小对不对,代码写的非常多 ,运行起来才能看见效果
WPF就好处理了

比如这个积木,是个圆圈,是可以单独看得到
每个面都可以单独的修改一下
方形的改成圆形的
控件现成的还好
没有现成的,wpf重新贴片预览的方式比winform绘图的方式方便
预览方式更直接,所见即所得
修改一下就能拿到我们的效果
对象处理更灵活
winform控件是核心对象,封装的很死,改起来复杂
二、渲染
winform控件是核心对象
重叠的部分相互不影响,是分层的,上下层遮盖的
所有的控件都是根据句柄去接收Windows消息的,
各种事件,输入、鼠标,会通过句柄发送到控件上来,控件直接进行处理

WPF相当于提供了一个画布
只是给个笔给你
你自己想怎么画都可以
是在平面上操作,
遮挡的就不进行渲染了,遮挡的如果重新渲染还没来得及可能是黑色的,弹一下就显示了

好处,整个是就是一个对象
所有对象没有句柄,drawcontext
有Windows消息第一步是处罚窗口的
所有事件都是窗口触发的
其中某一部分都是通过窗口一步步路由进来的,
命中测试 ,知道我点的是哪个对象,触发响应事件
非常大的区别
界面组织,如何把控件画出来
三、业务逻辑控制
传统模式,很多控件,是在窗口对象里面有个列表的 ,可以一个个遍历出来
窗体的逻辑后台一步步的写
业务逻辑和界面的交互

到WPF,就是隔山打牛
在中间加个东西:对象模型
对窗体对象的数据建模
TextBox 输入数据,建模中用个变量获取
通过数据变量进行中转
前景色--也有数据变量
所有属性都有对应的数据变量
之前this.textbox.text直接赋值
WPF是先请求数据变量 ,并不知道数据是什么东西 ,通过某种方式去界面上拿数据进行业务处理
通过修改数据变量,数据变量修改前景色
通过操作数据变量 ,最终体现在界面上

4、事件驱动与数据驱动
传统模式是通过事件触发的,按钮点击之类
改变之后
中间隔了一层
并不是业务逻辑直接操作界面了
而是由数据模型来处理
事件还是有的,只是表现形式改变了而已
触发的机制动作还是由事件触发的,只是隐藏起来了
点击还是点击
而是通过数据模型去改变界面的显示数据
数据驱动的概念
数据驱动还是有的,人机交互的过程,动作推动业务逻辑进程
切入点还是事件
浙公网安备 33010602011771号