C#的MAUI是什么?如何开发跨平台的移动和桌面应用?

MAUI是微软推出的跨平台开发框架,基于.NET实现一套代码多端运行,支持Android、iOS、Windows和macOS;开发者需安装Visual Studio 2025并配置.NET MAUI工作负载,创建项目后通过MainPage.xaml设计界面,App.xaml管理资源,Platforms文件夹处理平台特定逻辑;利用C#编写事件响应,如按钮点击更新文本;采用FlexLayout或Grid布局适配不同屏幕,结合DeviceInfo判断平台类型,实现差异化功能;通过MauiProgram.cs配置依赖注入;开发时可使用模拟器调试,启用Hot Reload提升效率;发布前需设置各平台签名证书,优化图标与权限,并使用Release模式配合AOT编译提升性能。

MAUI(.NET Multi-platform App UI)是微软推出的跨平台应用开发框架,全称是 .NET Multi-platform App UI。它是 Xamarin.Forms 的进化版本,允许开发者使用 C# 和 XAML 创建运行在多个平台上的原生应用,包括 Android、iOS、macOS 和 Windows。

MAUI 能做什么?

MAUI 让你用一套代码库构建:
  • Android 和 iOS 移动应用
  • Windows 桌面应用(WinUI 3)
  • macOS 应用
界面和业务逻辑可以共享,同时支持针对特定平台进行定制。

如何开始开发 MAUI 应用?

要开发 MAUI 应用,你需要以下准备:
  • 安装 Visual Studio 2025(推荐版本 17.8 或更高)
  • 在安装时勾选“.NET MAUI 开发”工作负载
  • 确保已安装所需的 SDK:Android SDK、JDK、Apple 工具(如需构建 iOS/macOS)

创建项目步骤:

  1. 打开 Visual Studio,选择“创建新项目”
  2. 搜索并选择“.NET MAUI App”模板
  3. 输入项目名称和路径
  4. 选择 .NET 版本(如 .NET 8)
  5. 生成的项目会包含一个共享的主项目和各平台的启动项目

MAUI 项目结构说明

一个典型的 MAUI 项目包含:
  • MainPage.xaml:主界面,使用 XAML 定义 UI
  • App.xaml:应用级资源和启动配置
  • Platforms/ 文件夹:存放各平台特有代码和配置(如权限、图标等)
  • Resources/:统一管理图像、样式、字体等资源

你可以通过 C# 编写交互逻辑,例如按钮点击事件:

private void OnCounterClicked(object sender, EventArgs e)
{
    count++;
    CounterLabel.Text = $"You clicked {count} times!";
}

跨平台适配技巧

虽然 MAUI 支持多平台,但不同设备尺寸和系统特性需要处理:
  • 使用 FlexLayoutGrid 实现响应式布局
  • 通过 DeviceInfo 类判断当前平台或设备类型
  • 在 Platforms 文件夹中编写平台专属代码(如调用相机、通知)
  • 使用 MauiProgram.cs 配置服务和依赖注入

示例:根据不同平台显示不同提示

string platform = DeviceInfo.Platform switch
{
    DevicePlatform.iOS => "Running on iOS",
    DevicePlatform.Android => "Running on Android",
    DevicePlatform.WinUI => "Running on Windows",
    _ => "Unknown platform"
};

调试与发布

开发过程中可以:
  • 使用模拟器或真机调试 Android/iOS 应用
  • 直接运行 WinUI 项目查看桌面效果
  • 利用 Hot Reload 快速预览 UI 修改

发布前需要:

  • 为各平台设置签名证书(尤其是 iOS 和 Android)
  • 优化图标、启动画面和权限配置
  • 使用 Release 模式编译,并启用 AOT 编译提升性能(.NET 8+)

基本上就这些。MAUI 降低了跨平台开发门槛,适合熟悉 C# 的开发者快速构建多端应用。