导读:本期聚焦于小伙伴创作的《C#怎么实现MAUI跨平台开发 C#如何用.NET MAUI开发同时运行在手机和桌面的跨平台应用》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《C#怎么实现MAUI跨平台开发 C#如何用.NET MAUI开发同时运行在手机和桌面的跨平台应用》有用,将其分享出去将是对创作者最好的鼓励。

.NET MAUI是微软基于.NET生态推出的跨平台应用开发框架,允许开发者使用C#和XAML编写一套代码,就能将应用部署到Android、iOS、Windows、macOS等多个平台,非常适合需要同时覆盖手机和桌面端的开发场景。

C#怎么实现MAUI跨平台开发 C#如何用.NET MAUI开发同时运行在手机和桌面的跨平台应用

.NET MAUI开发环境准备

首先需要在开发设备上安装对应的工具,Windows平台推荐安装Visual Studio 2022,macOS平台推荐安装Visual Studio 2022 for Mac,安装时勾选.NET_MAUI相关工作负载即可。安装完成后,需要确认.NET SDK版本至少为.NET 6及以上,因为.NET MAUI基于.NET 6及更高版本构建。

可以通过命令行验证环境是否配置成功,执行以下命令查看已安装的.NET MAUI工作负载:

dotnet workload list

如果列表中包含maui相关项,说明环境已经准备就绪。

创建第一个.NET MAUI项目

打开Visual Studio,选择创建新项目,在项目模板中搜索MAUI,选择.NET MAUI应用模板,点击下一步。填写项目名称和存储路径后,点击创建即可生成默认的MAUI项目。

默认项目的结构如下:

  • Platforms目录:存放不同平台的特定代码,比如Android、iOS、Windows等平台的启动配置
  • Resources目录:存放应用的资源文件,比如图片、字体、样式等
  • App.xaml和App.xaml.cs:应用的入口配置,定义全局资源和应用生命周期逻辑
  • MainPage.xaml和MainPage.xaml.cs:应用的主页面,包含界面布局和交互逻辑

编写跨平台界面和逻辑

界面布局设计

MAUI使用XAML编写界面,和WPF、Xamarin.Forms的语法类似,以下是一个简单的主页面布局示例,包含一个文本显示和一个按钮:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="MauiDemo.MainPage">
    <VerticalStackLayout Spacing="20" Padding="30">
        <Label Text="欢迎使用.NET MAUI"
               FontSize="24"
               HorizontalOptions="Center" />
        <Button Text="点击计数"
                Clicked="OnCounterClicked"
                HorizontalOptions="Center" />
        <Label x:Name="CounterLabel"
               Text="点击次数:0"
               FontSize="18"
               HorizontalOptions="Center" />
    </VerticalStackLayout>
</ContentPage>

交互逻辑实现

对应的后台C#逻辑代码如下,实现点击按钮计数并更新显示的功能:

namespace MauiDemo;

public partial class MainPage : ContentPage
{
    private int _count = 0;

    public MainPage()
    {
        InitializeComponent();
    }

    private void OnCounterClicked(object sender, EventArgs e)
    {
        _count++;
        CounterLabel.Text = $"点击次数:{_count}";
        
        // 计数到10时弹出提示
        if (_count == 10)
        {
            Dispatcher.Dispatch(async () =>
            {
                await DisplayAlert("提示", "你已经点击了10次", "确定");
            });
        }
    }
}

多平台适配注意事项

虽然.NET MAUI是一套代码多端运行,但部分功能在不同平台上存在差异,需要进行适配:

  • 权限处理:比如访问相机、存储等权限,不同平台的申请方式不同,可以使用MAUI提供的权限API统一处理
  • 界面适配:不同设备的屏幕尺寸差异较大,可以使用Grid布局和响应式尺寸设置适配不同屏幕
  • 平台特定功能:如果某个功能只在特定平台存在,可以在Platforms目录下对应平台的文件夹中编写特定代码,通过条件编译调用

以下是一个条件编译的示例,在不同平台执行不同的日志输出逻辑:

public void PrintPlatformInfo()
{
#if ANDROID
    Console.WriteLine("当前运行在Android平台");
#elif IOS
    Console.WriteLine("当前运行在iOS平台");
#elif WINDOWS
    Console.WriteLine("当前运行在Windows平台");
#elif MACCATALYST
    Console.WriteLine("当前运行在macOS平台");
#endif
}

应用打包与发布

开发完成后,可以根据目标平台进行打包:

  • Android平台:可以直接生成APK或者AAB包,用于分发到应用商店或者直接安装
  • iOS平台:需要配置开发者证书,生成IPA包,通过TestFlight或者App Store分发
  • Windows平台:可以生成MSIX包,用于Windows应用商店或者直接安装
  • macOS平台:可以生成APP包,分发到Mac App Store或者直接提供下载

打包过程可以在Visual Studio中通过右键项目选择发布选项,按照向导提示完成对应平台的打包配置即可。

C#.NET_MAUI跨平台开发MAUI应用修改时间:2026-06-11 05:39:31

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。