写点什么

.NET 10 第七预览版通过 XAML 源生成器加速 .NET MAUI 开发

作者:Edin Kapić

  • 2025-08-25
    北京
  • 本文字数:1437 字

    阅读完需:约 5 分钟

大小:603.85K时长:03:26
.NET 10 第七预览版通过 XAML 源生成器加速 .NET MAUI 开发

微软于 8 月 12 日在 .NET 10 中发布了 .NET MAUI 第七个预览版,带来了更多性能提升和控件优化。本次更新重点包括编译时 XAML 处理、增强的媒体元数据支持、更安全的 UI 布局以及工具栏 API 优化。

 

MAUI 是“多平台应用程序 UI”的缩写。据微软介绍,该框架是 Xamarin 和 Xamarin Forms 的演进版本,将独立的目标库和项目统一为支持多设备的单一项目。目前 MAUI 支持开发运行于 Android 5+、iOS 12.2+、macOS 12+(作为 Mac Catalyst)、三星 Tizen、Windows 10 版本 1809+ 或 Windows 11 的应用程序,其最低平台要求与去年发布的第九版保持一致。

 

XAML 标记现改为构建时编译而非运行时解释。这一变更降低了应用启动延迟,使 XAML 错误能更早地出现在开发工作流中,并允许开发者检查生成代码以获得更深入的洞察。要启用构建时 XAML 编译,开发者必须在项目中添加 EnablePreviewFeatures 属性,并使用 XamlProcessing 特性修饰根命名空间。

 

<PropertyGroup>  <EnablePreviewFeatures>true</EnablePreviewFeatures></PropertyGroup>

[assembly: XamlProcessing(XamlInflator.SourceGen)]namespace MyApp;
复制代码

 

通过 MediaPicker 控件选择图像时,MAUI 现在能够处理嵌入的 EXIF 元数据(包括方向、时间戳或地理定位数据)。这一改进使图像处理功能更丰富(如图片自动旋转),并提高了依赖元数据的应用程序的可靠性。新版本还能在图像被选取后向下游传递时,保留所有已有的 EXIF 元数据。

本次更新为安全区域(Safe Area)新增多项功能,安全区域特性可防止内容渲染到设备特定屏幕空间之外、可能被其他内容覆盖的区域(摄像头刘海、圆角和类似 UI 元素)。针对刘海屏、圆角和显示缺口的布局逻辑现在更加智能,让开发者能更精细地控制内容在不同安全区域设备上的定位。开发者只需向内容控件添加 SafeAreaEdges 属性,即可在多个选项中选择内容显示方式,包括:


public enum SafeAreaRegions{    None = 0,          // 边缘到边缘内容(无安全区域边距)    SoftInput = 1,     // 始终为键盘/软输入保留边距    Container = 2,     // 在键盘下方流动,避开状态栏/刘海区域      Default = 4,       // 平台默认行为    All = int.MaxValue // 遵守所有安全区域插入边距}
复制代码

 

.NET MAUI 10 的第七预览版中的工具栏现在可包含二级菜单项,这些项将根据设备特性渲染为对应的次级菜单选项。开发者需在 ToolbarItem 标记中添加 Order 属性,并设置为 Primary(主要)或 Secondary(次要)即可实现。通常二级菜单项会隐藏在操作菜单的省略号之后。

 



最后,该版本为控件新增了多个 API,例如可通过编程方式控制选择器的打开或关闭状态、搜索处理程序可隐藏或显示软键盘、以及公开了 TabbedPageManager 类。本次预览版同时移除了部分已弃用的 API,例如 Accelerator 类已从 Microsoft.Maui.Controls 中移除,ClickGestureRecognizer 也被 TapGestureRecognizer 取代。

 

开发者对新版本的反馈普遍积极。Stuart Ballard 在 Microsoft DevBlog 表示

XAML 源生成器听起来太棒了——为什么它仅限于 MAUI 而不是作为通用组件支持 WPF 等其他框架?

 

windowsforum.com 上的一篇帖子中有人称,第七预览版是一个整合版本,也是专注于提升 MAUI 整体质量的后期里程碑。虽然这不是直接观点,但也强化了社区的共识:本次预览版不再专注于华而不实的新功能,而是着力打磨现有功能。

 

读者可参考 GitHub 官方 MAUI 代码库获取完整的发布说明


原文链接:

https://www.infoq.com/news/2025/08/maui-10-preview7/

2025-08-25 17:156300

评论

发布
暂无评论

JUC中的AQS底层详细超详解

华为云开发者联盟

Java 开发 华为云 企业号十月 PK 榜

React的5种高级模式

夏天的味道123

React

Vue3必会技巧-自定义Hooks

yyds2026

Vue

开源软件供应链攻击激增430%,供应链安全不容小觑丨行业报告解读

SEAL安全

开源 DevOps 行业报告 软件供应链安全

日报周报是“毒瘤”还是“良药”?

优秀

周报 日报

web前端开发培训女生学习怎么样

小谷哥

Checkout.com支付解决方案,助力跨境电商领跑购物季

科技热闻

学会这10种定时任务,我有点飘了

小小怪下士

Java 程序员

软件测试面试真题 | MYSQL中删除语句有哪些?

测试人

sql 软件测试 面试题 测试开发

React源码解读之React Fiber

flyzz177

React

【1024】程序员节丨致敬所有技术布道师

MobTech袤博科技

1024程序员节 MobTech袤博科技

Vue3知识点之数据侦测

yyds2026

Vue

请求投放个性化广告时,如何征得用户同意?

HarmonyOS SDK

广告

java开发培训机构要怎么谨慎选择

小谷哥

2022 XDR网络安全运营新理念峰会完整嘉宾阵容公布!

未来智安XDR SEC

网络安全

前端高频手写面试题

helloworld1024fd

JavaScript

几个常见的js手写题,你能写出来几道

helloworld1024fd

JavaScript

百度搜索业务交付无人值守实践与探索

百度Geek说

Pytho 企业号十月 PK 榜 智能测试

实现Promise的原型方法--前端面试能力提升

helloworld1024fd

JavaScript

React生命周期深度完全解读

夏天的味道123

React

React核心工作原理

xiaofeng

React

长安链源码分析之交易过程分析(8)

深度解析9种ScheduledThreadPoolExecutor的构造方法

华为云开发者联盟

高并发 开发 华为云 源代码 企业号十月 PK 榜

软件测试 | 测试开发 | 如何确保API的稳定性与正确性?你只需要这一招

测吧(北京)科技有限公司

测试

对象存储只能按文件名搜索,你out了吧

华为云开发者联盟

云计算 存储 华为云 企业号十月 PK 榜

Springboot 一行代码实现文件上传 20个平台!少写代码到极致

程序员小富

Java springboot 文件上传

React源码解读之任务调度

flyzz177

React

阿里云移动测试-远程真机篇

移动研发平台EMAS

性能测试 app测试 移动测试 远程真机

React性能优化的8种方式

xiaofeng

React

高可用和负载均衡的三大区别详细讲解-行云管家

行云管家

高可用 高可用集群 ha

RocketMQ Flink Catalog 设计与实践

阿里云大数据AI技术

sql 大数据 flink 分布式计算 企业号十月PK榜

.NET 10 第七预览版通过 XAML 源生成器加速 .NET MAUI 开发_微软_InfoQ精选文章