.NET MAUI是什么?如何用它构建一个跨平台的应用程序?

来源:这里教程网 时间:2026-02-21 17:31:20 作者:

.NET MAUI(.NET Multi-platform App UI)是微软推出的一个开源框架,用于使用C#和XAML构建跨平台的原生应用程序。它支持在Android、iOS、macOS和Windows上运行同一个代码库,让你用一套代码开发多个平台的应用,大幅提高开发效率。

核心特点

• 统一API:通过抽象层访问设备功能(如摄像头、GPS、文件系统),无需为每个平台单独编写代码。
• XAML驱动界面:使用声明式XAML定义用户界面,并支持数据绑定、样式和模板。
• 单项目结构:从.NET 6开始,所有平台共享一个项目文件,简化管理和构建流程。
• 原生性能:编译为各平台的原生代码,应用运行高效且体验接近原生。
• 集成Visual Studio:提供设计器、调试工具和热重载,提升开发体验。

创建一个简单的跨平台应用

下面是一个快速入门示例,展示如何用.NET MAUI创建一个显示“Hello, MAUI!”并带按钮交互的应用。

1. 准备开发环境

• 安装最新版Visual Studio 2022(推荐Community及以上版本)。
• 在安装时勾选“.NET Multi-platform App UI development”工作负载。
• 确保已安装对应的SDK(Android SDK、Apple开发者工具等)。

2. 创建新项目

• 打开Visual Studio,选择“创建新项目”。
• 搜索并选择“.NET MAUI App”,点击下一步。
• 输入项目名称(例如MyMauiApp),选择保存路径,完成创建。

3. 修改主页面界面

打开 MainPage.xaml 文件,替换内容如下:

<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="MyMauiApp.MainPage">
    <VerticalStackLayout Padding="20" Spacing="15">
        <Label Text="Hello, MAUI!" 
               FontSize="24" 
               HorizontalOptions="Center" />
        <Button Text="点击我" 
                Clicked="OnButtonClicked" 
                HorizontalOptions="Center" />
    </VerticalStackLayout>
</ContentPage>

4. 添加按钮逻辑

打开 MainPage.xaml.cs 文件,在类中添加事件处理方法:

private int clickCount = 0;
private void OnButtonClicked(object sender, EventArgs e)
{
    clickCount++;
    Label label = this.FindByName<Label>("MessageLabel");
    if (label != null)
        label.Text = $"你点击了 {clickCount} 次!";
}

注意:上面代码假设你给Label加了一个

x:Name="MessageLabel"
属性。如果想让计数更新生效,请修改XAML中的Label:

<Label x:Name="MessageLabel" 
       Text="等待点击..." 
       FontSize="18" 
       HorizontalOptions="Center" />

5. 构建并运行

• 在工具栏选择目标平台(如Android Emulator、Windows Machine、iOS Simulator)。
• 点击“启动”按钮,.NET MAUI会自动编译并部署到所选设备或模拟器。

小贴士

• 使用热重载(Hot Reload)可实时查看界面更改效果,无需重新编译。
• 平台特定代码可通过条件编译或依赖注入实现。
• 可集成MVVM模式,结合命令绑定和INotifyPropertyChanged提升结构清晰度。 基本上就这些。.NET MAUI降低了跨平台移动和桌面开发的门槛,特别适合已有C#基础的开发者快速上手。

相关推荐

热文推荐