Tianjin RARESOFT TECHNOLOGY

IT新闻

聚合微软、Windows、企业 IT、云服务与 AI 应用等方向的最新动态,帮助企业及时了解平台变化、功能更新与潜在风险。

由于微软忽视 WinUI,Windows 11 充斥着占用 1GB 以上内存的网页应用;如今微软终于开始补上开发者期待的基础功能

2026.11.03
WinUI 全新 TableView 和 Chart 控件为 Windows 11 应用带来原生数据表格和图表WinUI 全新 TableView 和 Chart 控件为 Windows 11 应用带来原生数据表格和图表

Microsoft 终于为 WinUI——Windows 11 的现代应用原生框架——带来了数据表格、图表和笔迹输入。这三项基础功能是财务工具、管理面板和笔记应用所必需的。缺少它们时,开发者或许会觉得用 Web 技术构建应用更省事。TableView 和 Chart 于 9 月 29 日随 Windows App SDK 2.5.4 实验版一同推出,此外还更新了笔迹输入控件。开发者可以通过 WinUI Gallery 3.0 试用这些功能,但 Microsoft 表示,它们目前还不适合用于正式版应用。

在 Build 2026 上,Microsoft Windows UI 团队的 Chris Anderson 承认,WinUI“平台上还存在大量功能缺口”,并表示 DataGrid 和图表功能“即将推出”。Microsoft 也在这场大会上鼓励开发者选择 WinUI,而不是 Web 框架,并从名称中去掉了“3”,以表明公司无意再推出另一个框架。

包含 Chart、TableView 和 InkCanvas 实验版的 WinUI GalleryWinUI Gallery 展示了实验版 Chart、TableView 和 InkCanvas。图片来源:Windows Latest

简单来说,WinUI 是 UI 框架,而 Windows App SDK 则是提供该框架的 Windows API 和工具包。

WinUI 3 终于加入开发者期待已久的基础控件

实验版为 WinUI 3 应用带来了三项由 Microsoft 官方提供的基础组件。

  • TableView:用于显示、排序、筛选、分组和编辑大量记录的原生表格
  • Chart:用于绘制折线图、面积图和柱状图的原生控件
  • InkCanvas 和 InkToolbar:允许用户使用手写笔、手指或鼠标书写和绘画

此前,开发者只能向第三方供应商购买这些控件,或从社区项目中借用,甚至亲自从头构建。9 月,TableView 的代码已出现在 WinUI 的 GitHub 代码库中。

TableView 为 WinUI 3 应用带来原生数据网格

2021 年 11 月 Windows App SDK 1.0 发布时,Syncfusion、DevExpress 和 Telerik 就已在推广各自的 WinUI DataGrid 和 Chart 控件。Microsoft 自家的版本竟花了将近五年才推出!

“社区长期以来一直在呼吁 WinUI 3 支持数据表格,”WinUI 团队的 Pranav Gupta 在 TableView 发布公告中写道。

使用 WinUI TableView 的 Contoso Sales Ledger 应用使用 WinUI TableView 的 Contoso Sales Ledger 应用。图片:Microsoft

用户可以点击表头进行排序、调整列宽和冻结列,还可以切换“紧凑”“标准”和“舒适”三种行密度。开发者则可以使用模板列创建状态标签或进度条等丰富单元格,通过共享的 TableViewSource 进行筛选和分组,使用带验证功能的编辑模式,并启用虚拟化行。Microsoft 的 Contoso Sales Ledger 演示应用正是借助这一功能,在 11 列中处理了 5,000 笔交易。

编辑 WinUI TableView

例如,库存应用可以让用户按库存量对商品排序、按供应商筛选、按类别分组,并直接修改错误的价格,而开发者无需再用基础控件拼凑数据网格。

完整的账本演示,包括应用自定义的排序控件完整的账本演示,包括应用自定义的排序控件。来源:Microsoft

颇具讽刺意味的是,Microsoft 在 Build 上承诺推出 DataGrid,但其 TableView 文档却明确表示,该控件“并非 DataGrid 的替代品,也不提供类似电子表格的交互功能”。用户一次只能选择一行、按一列排序、按一个层级分组,而且无法调整列顺序。Microsoft 表示,层次视图和应用上下文菜单已在开发中。

WinUI 3 终于拥有自己的原生 Chart 控件

财务仪表板需要展示收入与支出的对比、现金余额走势,或许还需要投资组合曲线。考虑到这类应用十分常见,WinUI 开发者过去不得不费力集成第三方图表库。

使用不同类型 WinUI 图表的 Contoso Finance 应用使用不同类型 WinUI 图表的 Contoso Finance 应用。图片:Microsoft

Microsoft 的 Chart 控件支持折线、面积和柱状图系列,以及类别轴、日期时间轴、数值轴、图例、数据标签和标记。多个系列可以共用坐标轴,WinUI Gallery 中的示例还展示了如何通过 ObservableCollection 实时更新图表系列。

使用 WinUI Chart 绘制的横向支出条形图使用 WinUI Chart 绘制的横向支出条形图。图片:Microsoft

在 Gupta 的 Contoso Finance 演示应用中,柱状图用于对比每月收入和支出,折线图用于追踪现金余额,横向条形图则用于细分各项支出。不过,图表只负责绘制已准备好的数据。Gupta 写道:“储蓄率、现金可维持时间和类别总额等计算应由应用负责,而不是交给图表控件。”

使用 WinUI Chart 制作的深色和浅色主题财务应用示例使用 WinUI Chart 制作的深色和浅色主题财务应用示例。来源:Microsoft

开发者的反馈只能说褒贬不一。有人直接问:“为什么没有饼图?”也有人希望加入缩放和平移功能,还有用户提交问题,抱怨该控件不符合 Fluent 设计规范。

Microsoft 正将 InkCanvas 和 InkToolbar 引入 WinUI 3

UWP 应用多年来一直支持 InkCanvas,但开发者将这些应用迁移到 WinUI 3 后,却发现这个控件“根本不存在”,Gupta 在笔迹输入功能公告中这样说道。

笔迹输入功能最初于 8 月随 Windows App SDK 2.4.1 实验版推出,包括 InkCanvas、InkToolbar 和 InkPresenter,并支持剪贴板和高对比度模式。2.5.4 版本支持 InkToolbar 在没有 InkCanvas 的情况下驱动 InkPresenter,并新增 InkSynchronizer,让应用可以自行渲染已提交的笔迹。

使用 WinUI 3 InkToolbar 绘制的粗细递增的笔迹使用 WinUI 3 InkToolbar 绘制的粗细递增的笔迹。图片:Microsoft

工具栏提供钢笔、铅笔、荧光笔、橡皮擦和直尺按钮。笔迹可以保存为普通 GIF,重新载入后仍可编辑。Gupta 表示,这些控件意味着“笔记应用不必再由你亲自编写绘图引擎”,这对需要签署 PDF 或在 Surface 上随手记录会议内容的用户都很有帮助。

InkToolbar 的使用效果

我一直觉得,配备手写笔和二合一设备的 Windows 硬件比 Apple 领先不少,所以 Microsoft 的现代框架居然不支持手写笔,实在令人费解!

WinUI Gallery 3.0 让开发者更早测试实验性控件

“以往,新控件通常要等到 Windows App SDK 发布稳定版后才会出现在 Gallery 中。”高级产品经理 Niels Laute 于 10 月 13 日宣布推出 WinUI Gallery 3.0 时写道。这款参考应用可供开发者试用 WinUI 控件并复制示例代码。

3.0 版基于 Windows App SDK 实验版运行,并以独立形式随附,因此开发者无需额外安装任何内容。Laute 表示,这样做是为了尽早提供示例代码,并趁 API 仍可能发生变化时收集反馈。实验性页面会带有标记,Gallery 还提供了 WrapPanel、LayoutPanel、PagerControl 以及新的 Window 宽度和高度属性的示例。

WinUI Gallery 中的媒体部分WinUI Gallery 中的媒体部分。图片来源:Windows Latest

不出所料,有开发者在帖子下问道:“所以现在它终于加入了这些在 WPF 中存在了几十年的‘实验性’功能?”

WinUI 的开发历时多年,Microsoft 仍在逐步开放开发

得知 WinUI 3 已推出七年,而全面开放其开发的进程直到去年才启动,我感到很意外。不过,迟做总比不做好……

日期里程碑2019 年 11 月Microsoft 提出 WinUI 3 的发展方向。2020 年 2 月WinUI 3 Alpha 版发布。2020 年 5 月WinUI 3 Preview 1 加入 Win32 支持。2021 年 3 月Project Reunion 0.5 随 WinUI 3 一同发布。2021 年 6 月Project Reunion 0.8 发布。2021 年 11 月Windows App SDK 1.0 发布。2022 年 5 月Windows App SDK 1.1 加入新功能并带来改进。2022 年 11 月Windows App SDK 1.2 发布。2023 年 4 月Windows App SDK 1.3 发布。2023 年 8 月Windows App SDK 1.4 发布。2024 年 2 月Windows App SDK 1.5 发布。2024 年 9 月Windows App SDK 1.6 加入 Native AOT 支持。2025 年 3 月Windows App SDK 1.7 发布。2025 年 7 月Microsoft 宣布分阶段开源 WinUI 的计划。2025 年 9 月Windows App SDK 1.8 发布。2026 年 4 月Windows App SDK 2.0 发布。2026 年 5 月Microsoft 完成 WinUI 开源计划的第三阶段。2026 年 8 月WinUI 主线开发迁移至 GitHub;第四阶段完成。2026 年 8 月WinUI 3 实验版加入笔迹输入支持。2026 年 9 月实验版 TableView 和 Chart 控件推出。2026 年 10 月WinUI Gallery 3.0 展示新的实验性控件。

 

Microsoft 的 Beth Pan 在 2025 年 7 月宣布开源计划时写道:“这不是一键切换就能完成的事,而是一个经过深思熟虑的过程。”此后,Microsoft 已完成第四阶段,并于 2026 年 8 月将 WinUI 主线开发迁移至 GitHub。Microsoft 工程师现在会公开创建分支、发起拉取请求、审查并合并代码。但这并不意味着外部开发者现在就能参与贡献。Microsoft 表示,目前仍在验证贡献流程;XAML 编译器也尚未完全开源,因此还无法仅凭源代码完整构建。

颇具讽刺意味的是,有开发者在 Chart 发布公告下指出,这些新控件是通过闭源软件包发布的!

更完善的原生控件或许能让 Windows 应用不再依赖 Electron

开发者选择 Electron,是因为一套 HTML、CSS 和 JavaScript 代码就能在 Windows、macOS 和 Linux 上运行。你很可能已经用过多个 Electron 或 WebView2 应用,也见识过它们的内存占用一路飙升,仿佛正在渲染一款游戏!

Electron 使用 Chromium 和 Node.js 运行基于 Web 技术的桌面应用,而 WebView2 则嵌入了基于 Microsoft Edge 的网页渲染引擎。两者都能让开发者重复使用 Web 技术,但也会带来额外的浏览器相关进程和内存开销。

我测试新版 Windows WhatsApp 时,WebView2 版本在空闲状态下占用了约 600MB 内存,而旧版原生应用不到 100MB。就我个人而言,我还在继续使用 Outlook Classic;如果新版 Outlook(WebView2 应用)有一天变成原生应用,我就会切换过去。

任务管理器中的 WhatsApp 子进程

话虽如此,WinUI 并非天然就高效。Microsoft 承认 WinUI 应用可能会占用大量内存,所幸 Anderson 在 Build 上列出的优先事项中也包括这一点。他说:“最重要的是性能、基础体验、质量,以及修复大量错误。”

2.5.4 版本通过修复一项资源跟踪错误,解决了部分内存增长问题。此前,应用反复创建视觉状态故事板,或解析静态资源、主题资源时,内存占用会不断上升。此外,该版本还改进了 .NET 应用在标签页或页面关闭后对不可达 WinUI 原生对象的清理。其他小功能也仍然缺失,例如 Electron 应用都支持的 Shift+单击滚动条快捷操作。

目前,开发者可以用 WinUI 原型开发会计应用,使用 Microsoft 的原生控件构建账本、仪表板和签名区域。当然,这并不意味着你的电脑会突然少掉一堆 Web 应用。最终结果取决于这些控件何时退出实验阶段,以及 Microsoft 是否会提供开发者一直呼吁的 Visual Studio 可视化设计器。