跳到主要内容

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:

在 Windows 终端中执行
dotnet --list-sdks

验收: 能说明 SDK 与运行时的区别;知道基础例子和实战源码的位置;明确下一步会学习窗口与绑定,而不是重新学习 C#。

接下来阅读学习路线,再用后端经验对照建立整体认识。

延伸阅读​