微软已经发布 .NET 11 Preview 6,其中包含多项针对 .NET MAUI 的架构和可靠性改进。此次更新将下一代 CollectionView 实现带到了 Windows 平台,推动 Android Shell 迁移到 handler 模型,提升了 Native AOT 兼容性,并为中断的媒体选择器操作增加了恢复支持。
.NET 11 的开发周期部分聚焦于使用平台 handler 和源码生成代码替换旧的 Xamarin.Forms 时代基础设施。此前的预览版本已经将 XAML 源代码生成器设为默认选项,并持续推进裁剪(trimming)以及 CoreCLR 支持工作。Preview 6 在此基础上进一步推进现代化改造,同时移除了面向 Xamarin.Forms 应用迁移所设计的剩余兼容包之一。
最大的 UI 变化是 CollectionView2(也称为 CV2)登陆 Windows 平台。新的 Windows handler 使用 WinUI 的 ItemsRepeater,使其与 Android、iOS 和 Mac Catalyst 上已经提供的 CV2 实现保持一致。它将 MAUI 的线性布局和网格布局映射到支持虚拟化的 WinUI 布局中,并支持包括分组、选择、页眉和页脚、空视图、吸附、增量加载以及与 RefreshView 集成等功能。
Preview 6 还使用标准 MAUI handler 重新实现了 Android 平台上的 Shell。新的 ShellHandler、ShellItemHandler 和 ShellSectionHandler 替代了基于 renderer 的类,并复用了 FlyoutViewHandler 和 TabbedPage 中共享的组件。微软表示,目前这只是 Android 平台的变化;iOS 和 Mac Catalyst 仍继续使用现有的 Shell renderer。因此,拥有自定义 Shell 行为或依赖 renderer 层的应用程序应该谨慎测试该预览版本。
对于混合应用而言,HybridWebView 的 JavaScript 互操作现在使用源码生成器替代反射。这消除了裁剪和 AOT 警告,并允许该控件运行在完全裁剪和 Native AOT 应用程序中。在 Android 上,MAUI 还会根据来源过滤传入的 JavaScript 消息,防止无关的 window.postMessage 事件(例如从嵌套框架发送的消息)被报告为原生消息。
该版本为 GeolocationListeningRequest 增加了 MinimumDistance 属性,允许应用程序仅在设备移动达到指定距离后请求位置通知。Android 应用程序还获得了可选择启用的 MediaPicker 结果恢复功能。新的 API 可以在 Android 终止并重新创建应用程序进程、而系统摄像头或选择器仍保持打开状态时,获取、等待或清除媒体结果。
一个可能造成破坏性影响的变化是移除了 Microsoft.Maui.Controls.Compatibility NuGet 包。显式引用该包,或依赖其 Xamarin.Forms 兼容 renderer 的项目,在面向 .NET 11 之前必须完成迁移。普通应用程序如果只引用 Microsoft.Maui.Controls,则不会受到影响,因为一些带有兼容性命名的基础类型仍然保留在核心程序集之中。
Preview 6 还包含针对 CollectionView、Shell、Android Material 3 样式、iOS 26、XAML 生成、无障碍功能以及部分平台基础功能的修复。Apple 工作负载现在面向稳定版 Xcode 26.6,而 .NET for Android 对 HTTP 失败和取消行为进行了调整,使其更符合更广泛的 HttpClient 契约。开发者可以在微软的 Preview 6 公告中找到安装说明,也可以在官方 GitHub 发布说明中查看详细的 MAUI 变化、关联 issue 和平台说明。.NET 11 Preview 6 现已作为预览版运行时和工具包提供下载。
原文链接:https://www.infoq.com/news/2026/07/net-maui-11-preview-6/





