发布日期:2025-10-07 07:12浏览次数:
上周三接了个小项目,要给本地一家打印店做个桌面工具,管理订单和自动生成发货单那种。甲方要求挺急,还明确说了要本地运行,不吃电脑资源,最好还能做得好看点,别像老古董软件。
我一开始琢磨着用Python搞个图形界面算了,简单嘛捣鼓了两天pyqt5,界面是出来了,按钮也按得动,但打包出来的exe,启动那个慢!还动不动报错缺dll,真心累。朋友知道了,在微信上噼里啪发消息过来:“都啥年代了还搞这?做Windows桌面应用,试试WPF!.Net的亲儿子,甩老WinForms几条街!”
将信将疑,跑去查了一圈。“.Net Framework”这几个字看着就头疼,生怕又要搞一堆环境配置。结果发现现在都“.Net Core/.Net 5+”这名字了,微软说跨平台?先不管,甲方只要Windows能用就行。
直接装了个Visual Studio(社区版免费够用),新建项目看到“WPF应用”选项就点了。界面一出来,XAML那一大段代码看得眼晕。左边是图形设计界面(像个简版Photoshop),右边是代码,改左边右边跟着变,改右边左边也跟着动。我心想这玩意儿有点意思。
开始干活!想画个订单录入的窗口,直接去左边工具箱拖控件:
想排排版,整个界面分区布局:
搞着搞着,发现拖拖拽拽几分钟就能搭出个挺专业的界面骨架,真心比我手写pyqt的布局代码快多了。
界面搭好了,得让输入的数据进我的程序。朋友之前提过一嘴“数据绑定”,这回真碰上了。
我定义了个简单的订单类 Order
:
在代码里创建了这个对象。
重点来了!在XAML里找到客户名的那个输入框(TextBox):
神奇的事发生了:
完全不用写什么* = *;
或者* = *;
这种手动同步的胶水代码!朋友说的“解耦”我大概懂点了。这样改业务逻辑或者改界面,只要绑定关系还在,就很少需要两边一起改。
老板要求界面好看,不能像三十年前的Windows程序。WPF有个叫样式(Style)的玩意。
后来觉得提交按钮得醒目点,又写了个“重点按钮”的样式,继承上面那个,改了个更亮的蓝色。点几下,全部按钮都变统一了,就提交按钮更突出。想搞悬浮变个色,加点阴影?
这效果,放到网页前端里也得写点css?这里点几下配配属性就搞定了。看着效果真心觉得桌面应用也能做的挺时髦。
当然没那么完美,有些地方真头疼:
搞完这个项目,真心觉得WPF做Windows桌面应用挺能打的:
纯Windows桌面开发的话,WPF值得搞!现在写博客还有点小兴奋,又翻了翻教程,发现MVVM模式据说更香,下个项目准备挑战一下。