1.1 阅读导引
这份手册为谁编写
如果你已经能用 ASP.NET Core 编写 API,了解 C#、依赖注入、LINQ 和 async/await,但还没有系统开发过桌面界面,这份手册就是你的起点。
WPF(Windows Presentation Foundation)是 .NET 的 Windows 桌面 UI 框架。它通过 XAML 描述界面,通过数据绑定连接界面与对象,通过样式和模板组织外观。你已有的业务服务、HTTP、配置和测试经验可以继续使用;需要新学的是窗口生命周期、界面状态、绑定通知、布局和 UI 线程。
:::tip 本篇目标 读完后,你应当知道从哪一章开始、每篇怎么练习,以及最终要完成什么项目。 :::
你将学会什么
本手册共 36 篇正文,按九组排列:
| 分组 | 你要回答的问题 | 学习结果 |
|---|---|---|
| 开始学习 | 后端经验如何迁移? | 建立桌面应用的思维 |
| 基础入门 | 一个窗口如何组成? | 创建窗口、表单与自适应布局 |
| 数据绑定 | 为什么数据变了,界面没变? | 理解 DataContext、通知与校验 |
| MVVM | 业务操作放在哪里? | 使用命令、ViewModel 和 Toolkit |
| 界面组织 | 如何统一外观和展示数据? | 应用资源、样式、模板与表格 |
| 工程实践 | 如何集成服务且不让窗口卡顿? | 正确使用异步、DI、HTTP 与发布 |
| 贯穿实战 | 这些知识如何一起工作? | 完成 TaskDesk 任务管理客户端 |
| Prism 进阶 | 多页面应用如何组织? | 掌握容器、Region、对话框、事件与模块 |
| 查阅与复习 | 遇到问题从哪里查? | 按现象排查,对照练习与速查 |
学习结束时,你应该能写出一个可调用 ASP.NET Core API 的 WPF 客户端,知道界面为什么更新,能定位绑定失效和线程问题,并能把业务逻辑放在可以测试的位置。
如何阅读每一篇
建议采用“读 → 写 → 改 → 验证”的顺序。先读核心机制,再输入示例代码运行,接着主动改一个条件,最后完成练习。仅看懂代码,还不能确认自己理解了对象和界面的关系。
例如,学属性通知时可以做一次实验:把实现 INotifyPropertyChanged 的属性改成普通自动属性,通过按钮修改它,再观察界面。重新打开窗口时能读到新值,运行中却不更新,说明“属性里有数据”和“界面知道数据变了”是两个问题。
每篇的代码块会标注文件名或说明放置位置。完整文件可以在对应项目中替换;控件或方法片段需要加入文中指定的容器或类。不同章节的小示例用于解释一个机制,不要把它们全部复制到同一个窗口。
:::info 代码约定
基础例子使用 WpfBasics 命名空间;实战使用 TaskDesk.Client。复制 XAML 时,应同时核对 x:Class、C# 命名空间与类名。InitializeComponent() 由构建生成,不需要手写。
:::
版本与环境约定
正文使用现代 .NET WPF,示例基线为 .NET 10 和 net10.0-windows。MVVM 工具采用 CommunityToolkit.Mvvm,先讲普通 C# 的通知与命令机制,再讲工具生成的代码。
| 你要做的事情 | 需要的环境 |
|---|---|
| 阅读已部署的站点 | 现代浏览器 |
| 本地运行文档站点 | Node.js 20 或更高版本,项目依赖 |
| 编写和运行 WPF 示例 | Windows、.NET 10 SDK,可选支持该 SDK 的 Visual Studio |
| 运行发布的 WPF 应用 | 对应桌面运行时,或应用的自包含发布包 |
安装 .NET 运行时可以执行应用,但不能替代 SDK 来编译项目。WPF 本身只运行在 Windows;文档站点是静态网页,可以部署到常见的静态托管平台。
如果工作环境暂时使用 .NET 8,大部分 XAML、绑定、命令和 MVVM 概念仍然适用;运行本手册完整实战请先安装 .NET 10 SDK。不要只修改目标框架而保留所有 .NET 10 包版本,迁移时需要同时核对包兼容性。
贯穿实战:TaskDesk
实战提供一个本地 ASP.NET Core API 和一个 WPF 客户端。客户端包含任务列表、输入框、刷新、新增、完成、删除、取消请求和状态提示。你可以从熟悉的 API 契约出发,再追踪数据怎样进入 ViewModel,最终显示到窗口。
完整源文件位于项目根目录的 examples/TaskDesk,运行方法见该目录的 README.md。在线文章包含关键实现与操作步骤;需要完整项目时使用本地配套源码。
这是学习项目,API 使用内存数据,重启会丢失修改,没有生产级认证。完成基础版后,再尝试登录、分页或持久化。先让绑定、命令和错误反馈正确工作,再扩展功能,学习效果更好。
完成 TaskDesk 后,可以继续阅读 Prism 专题,用本地 examples/PrismStudy 学习多页面导航、未保存离开确认、事件通知和模块初始化。两个示例分别帮助你掌握 API 客户端与应用组织,再通过练习把它们连接起来。
动手练习
给自己创建一份学习记录,每章只记三件事:一个核心概念、一个亲手重现的错误、一个完成的练习。开始前检查本机 SDK:
dotnet --list-sdks
验收: 能说明 SDK 与运行时的区别;知道基础例子和实战源码的位置;明确下一步会学习窗口与绑定,而不是重新学习 C#。
延伸阅读
- Microsoft Learn:WPF 概述
- Microsoft Learn:.NET 10 概述
- Furion 在线文档:本手册参考其目录与阅读组织方式,正文和示例独立编写。