.NET MAUI 基础知识

news2025/7/15 13:29:19

文章目录

    • 什么是 .NET MAUI?
      • MAUI的核心特点
      • 与Xamarin.Forms的区别
    • 开发环境搭建
      • 安装Visual Studio 2022
      • 安装必要组件
      • 配置Android开发环境
      • 配置iOS开发环境
      • 验证安装
    • 创建第一个MAUI应用
      • 创建新项目
      • MAUI项目结构解析
      • 理解关键文件
      • 运行应用程序
      • 简单修改示例
      • 使用热重载
    • MAUI应用生命周期
      • 应用程序生命周期
      • 页面生命周期
    • 常见控件和布局
      • 常用控件
      • 布局容器
      • 布局示例
    • 小结与后续学习路径
    • 学习资源

什么是 .NET MAUI?

.NET Multi-platform App UI (.NET MAUI) 是微软推出的新一代跨平台UI框架,是Xamarin.Forms的继任者。它允许开发者使用单一的代码库和项目结构,创建可在Android、iOS、macOS和Windows上运行的本地应用程序。.NET MAUI采用C#和XAML作为开发语言,为开发者提供了统一的编程模型和API,简化了跨平台应用开发流程。

MAUI的核心特点

.NET MAUI
单一项目结构
统一控件
平台特定API集成
现代化架构
原生性能
  1. 单一项目结构:不同于Xamarin.Forms的多项目解决方案,MAUI采用单一项目结构,简化了开发和维护过程。
  2. 统一控件:提供一套统一的控件库,这些控件在不同平台上保持一致的行为和外观。
  3. 平台特定API集成:允许直接从共享代码中访问平台特定API,无需编写自定义渲染器。
  4. 现代化架构:基于.NET 6及更高版本构建,支持最新的C#特性。
  5. 原生性能:应用程序编译为平台原生代码,提供接近原生的性能体验。

在这里插入图片描述

上图出自微软官方学习路线

与Xamarin.Forms的区别

演变
XamarinForms
+多项目结构
+旧版渲染系统
+传统依赖注入
+平台特定代码分离
MAUI
+单一项目结构
+处理程序架构
+现代依赖注入
+直接平台集成

主要改进点包括:

  1. 项目结构:从多项目结构简化为单一项目结构
  2. 渲染系统:从渲染器架构升级为更灵活的处理程序架构
  3. 构建系统:整合到.NET统一构建系统中
  4. 依赖注入:内置现代依赖注入框架
  5. 生命周期管理:改进的应用和页面生命周期管理
  6. 热重载:增强的XAML热重载支持

开发环境搭建

要开始.NET MAUI开发,需要设置适当的开发环境。以下是详细的步骤:

安装Visual Studio 2022

Visual Studio 2022是开发MAUI应用的首选IDE,它提供了完整的工具集和集成支持。

  1. 下载并安装Visual Studio 2022(推荐使用Community或更高版本)

安装Visual Studio 2022可以参考博文对于C#初学者在学习前的准备

  1. 在安装过程中,选择".NET Multi-platform App UI开发"工作负载
下载Visual Studio 2022
运行安装程序
选择工作负载
勾选.NET Multi-platform App UI开发
安装完成

安装必要组件

在Visual Studio安装程序中,确保以下组件被选中:

  1. .NET MAUI(必选)
  2. Android SDK设置(适用于Android开发)
  3. iOS和MacOS开发工具(适用于iOS/MacOS开发)
  4. 通用Windows平台开发(适用于Windows开发)

配置Android开发环境

要开发Android应用,需要完成以下设置:

  1. 安装Android SDK:默认情况下,Visual Studio会安装必要的Android SDK
  2. 配置Android模拟器
    • 打开Visual Studio中的"Android设备管理器"
    • 创建新的设备映像(推荐API 30或更高版本)
    • 配置模拟器性能选项
      在这里插入图片描述
      打开样式如下
      在这里插入图片描述

当我们存在项目时调试时就可以直接运行
在这里插入图片描述

无法创建模拟器时参考如何使用Android模拟器(Hyper-V和AEHD)启用硬件加速
如果模拟器无法使用可以尝试使用真机调试(在手机中打开开发者模式)

  1. 配置真机调试(可选):
    • 在Android设备上启用"开发者选项"和"USB调试"
    • 安装适当的USB驱动程序
    • 通过USB连接设备并允许调试

调试时可以打开xaml实时预览窗口进行查看
在这里插入图片描述

配置iOS开发环境

iOS开发需要一台Mac计算机和以下组件:

  1. 安装最新版Xcode:从Mac App Store下载并安装
  2. 设置远程配对
    • 在Mac上安装Apple的远程工具
    • 在Visual Studio中配置Mac连接

如果您使用Mac开发,则可以直接在Mac上安装Visual Studio for Mac并进行MAUI开发。

验证安装

完成安装后,可以通过以下步骤验证环境:

// 在命令行运行以下命令以检查.NET MAUI工作负载是否正确安装
dotnet workload list
// 应该能看到maui工作负载已安装的信息

在这里插入图片描述

创建第一个MAUI应用

让我们创建一个简单的Hello World应用来理解MAUI项目结构和基本概念。

创建新项目

  1. 打开Visual Studio 2022
  2. 选择"创建新项目"
  3. 在搜索框中输入"MAUI"
  4. 选择".NET MAUI应用"模板
  5. 点击"下一步"
  6. 输入项目名称(例如"MauiHelloWorld")

注意创建MAUI项目目录时不要包含中文

  1. 选择保存位置
  2. 点击"创建"

MAUI项目结构解析

创建的MAUI项目有以下主要文件和文件夹:
在这里插入图片描述

MauiHelloWorld/
│
├── Platforms/            # 平台特定代码
│   ├── Android/         # Android特定代码
│   ├── iOS/             # iOS特定代码
│   ├── MacCatalyst/     # MacOS特定代码
│   └── Windows/         # Windows特定代码
│
├── Resources/            # 应用资源
│   ├── AppIcon/         # 应用图标
│   ├── Fonts/           # 字体文件
│   ├── Images/          # 图像资源
│   ├── Raw/             # 其他资源
│   └── Styles/          # 样式定义
│
├── App.xaml              # 应用定义文件
├── App.xaml.cs           # 应用代码
├── AppShell.xaml         # Shell UI定义
├── AppShell.xaml.cs      # Shell UI代码
├── MainPage.xaml         # 主页面UI定义
├── MainPage.xaml.cs      # 主页面代码
└── MauiProgram.cs        # 应用配置和启动

理解关键文件

  1. MauiProgram.cs:应用程序的入口点,配置服务和应用生命周期
public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        // 创建MauiApp构建器
        var builder = MauiApp.CreateBuilder();
        
        // 配置应用程序
        builder
            .UseMauiApp<App>() // 使用App类作为主应用程序类
            .ConfigureFonts(fonts =>
            {
                // 配置应用程序字体
                fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
                fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
            });

        // 在这里注册服务(依赖注入)
        // builder.Services.AddSingleton<IMyService, MyService>();

        // 构建并返回MauiApp实例
        return builder.Build();
    }
}
  1. App.xaml/App.xaml.cs:定义应用程序资源和应用程序级行为
<Application xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:MauiHelloWorld"
             x:Class="MauiHelloWorld.App">
    <Application.Resources>
        <ResourceDictionary>
            <!-- 应用级资源和样式 -->
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="Resources/Styles/Colors.xaml" />
                <ResourceDictionary Source="Resources/Styles/Styles.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
</Application>
public partial class App : Application
{
    public App()
    {
        InitializeComponent();

        // 设置应用程序的主页面
        MainPage = new AppShell();
    }

    // 应用程序生命周期方法
    protected override void OnStart()
    {
        // 当应用启动时调用
        base.OnStart();
    }

    protected override void OnSleep()
    {
        // 当应用进入后台时调用
        base.OnSleep();
    }

    protected override void OnResume()
    {
        // 当应用从后台恢复时调用
        base.OnResume();
    }
}
  1. AppShell.xaml/AppShell.xaml.cs:定义应用程序的Shell架构(导航结构)
<Shell xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
       xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
       xmlns:local="clr-namespace:MauiHelloWorld"
       x:Class="MauiHelloWorld.AppShell"
       Title="MauiHelloWorld">
    
    <!-- 定义应用程序的Shell结构,这里是一个简单的单页面应用 -->
    <ShellContent Title="Home"
                  ContentTemplate="{DataTemplate local:MainPage}"
                  Route="MainPage" />
</Shell>
  1. MainPage.xaml/MainPage.xaml.cs:应用程序的主页面
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="MauiHelloWorld.MainPage">

    <ScrollView>
        <VerticalStackLayout Spacing="25" Padding="30">
            
            <Image Source="dotnet_bot.png"
                   HeightRequest="185"
                   SemanticProperties.Description="The .NET Bot mascot" />
            
            <Label Text="Hello, World!"
                   FontSize="32"
                   HorizontalOptions="Center" />
            
            <Label Text="Welcome to .NET MAUI!"
                   FontSize="18"
                   HorizontalOptions="Center" />
            
            <Button x:Name="CounterButton"
                    Text="Click me"
                    Clicked="OnCounterClicked"
                    HorizontalOptions="Center" />
            
        </VerticalStackLayout>
    </ScrollView>
</ContentPage>
public partial class MainPage : ContentPage
{
    // 计数器变量
    private int _count = 0;

    public MainPage()
    {
        InitializeComponent();
    }

    // 按钮点击事件处理方法
    private void OnCounterClicked(object sender, EventArgs e)
    {
        // 增加计数器值
        _count++;
        
        // 根据计数值更新按钮文本
        if (_count == 1)
            CounterButton.Text = $"Clicked {_count} time";
        else
            CounterButton.Text = $"Clicked {_count} times";
        
        // 屏幕阅读器宣布文本变化(辅助功能支持)
        SemanticScreenReader.Announce(CounterButton.Text);
    }
}

运行应用程序

创建项目后,可以选择目标平台并运行应用程序:

  1. 在Visual Studio顶部工具栏中,从调试目标下拉列表选择平台:

    • Windows Machine(Windows)
    • Android Emulator(Android)
    • Local Device(iOS,需要Mac连接)
  2. 点击绿色的"运行"按钮或按F5启动应用程序

  3. 应用程序将在所选平台上编译和运行

简单修改示例

让我们对默认应用程序做一些简单的修改,以了解MAUI开发流程:

  1. 添加自定义UI元素
<!-- 在VerticalStackLayout中添加一个滑块控件 -->
<Slider x:Name="OpacitySlider" 
        Minimum="0" 
        Maximum="1" 
        Value="1"
        ValueChanged="OnOpacityChanged"
        Margin="0,20,0,0" />

<Label Text="调整透明度"
       HorizontalOptions="Center" />
  1. 添加相应的代码逻辑
// 在MainPage.xaml.cs中添加滑块值变化处理方法
private void OnOpacityChanged(object sender, ValueChangedEventArgs e)
{
    // 获取滑块当前值(0到1之间)
    double newValue = e.NewValue;
    
    // 将滑块值应用到图像的透明度
    if (sender is Slider slider)
    {
        // 查找Image控件并设置其Opacity属性
        var image = this.FindByName<Image>("dotnet_bot");
        if (image != null)
        {
            image.Opacity = newValue;
        }
    }
}

使用热重载

.NET MAUI支持热重载功能,允许在应用运行时实时查看XAML更改:

  1. 运行应用程序
  2. 在XAML文件中修改UI(例如更改文本、颜色或布局)
  3. 保存文件,更改将立即反映在运行的应用程序中

MAUI应用生命周期

了解MAUI应用的生命周期对于正确管理资源和用户体验至关重要。

应用程序生命周期

MAUI应用生命周期由以下关键事件定义:

操作系统 MAUI应用 启动应用(OnCreate) 初始化(Constructor) 应用可见(OnStart) 应用在前台运行 进入后台(OnSleep) 应用在后台 返回前台(OnResume) 应用在前台运行 终止应用 操作系统 MAUI应用
  1. OnCreate/构造函数:应用程序初始化时调用
  2. OnStart:应用程序变为活动状态时调用
  3. OnSleep:应用程序进入后台时调用
  4. OnResume:应用程序从后台恢复时调用

页面生命周期

每个页面也有自己的生命周期事件:

  1. OnAppearing:页面即将显示时调用
  2. OnDisappearing:页面即将隐藏时调用
public partial class MyPage : ContentPage
{
    public MyPage()
    {
        InitializeComponent();
    }
    
    // 页面即将显示时调用
    protected override void OnAppearing()
    {
        base.OnAppearing();
        Console.WriteLine("页面正在显示");
        
        // 可以在此处加载数据或初始化UI
        LoadData();
    }
    
    // 页面即将隐藏时调用
    protected override void OnDisappearing()
    {
        base.OnDisappearing();
        Console.WriteLine("页面正在隐藏");
        
        // 可以在此处保存数据或清理资源
        SaveData();
    }
    
    private void LoadData()
    {
        // 加载数据的逻辑
    }
    
    private void SaveData()
    {
        // 保存数据的逻辑
    }
}

常见控件和布局

MAUI提供了丰富的控件和布局系统,以下是一些常用的UI元素:

常用控件

基础控件
Label
Button
Entry
Editor
Image
Switch
Slider
...
列表控件
ListView
CollectionView
CarouselView
...
表单控件
Picker
DatePicker
TimePicker
SearchBar
...
指示器控件
ActivityIndicator
ProgressBar
..

布局容器

MAUI提供了多种布局容器,用于组织UI元素:

  1. StackLayout:垂直或水平排列元素
  2. Grid:在行和列中排列元素
  3. FlexLayout:灵活排列元素,类似CSS Flexbox
  4. AbsoluteLayout:使用绝对坐标定位元素
  5. RelativeLayout:相对于其他元素或父容器定位元素

布局示例

以下是使用Grid布局的示例:

<Grid RowDefinitions="Auto,*,Auto"
      ColumnDefinitions="*,*">
      
    <!-- 占据第一行,跨越两列 -->
    <Label Text="标题文本" 
           Grid.Row="0" 
           Grid.ColumnSpan="2"
           HorizontalOptions="Center"
           FontSize="24"
           Margin="0,20,0,0" />
    
    <!-- 第二行第一列 -->
    <Image Source="image1.png"
           Grid.Row="1"
           Grid.Column="0"
           Aspect="AspectFit"
           Margin="20" />
    
    <!-- 第二行第二列 -->
    <Image Source="image2.png"
           Grid.Row="1"
           Grid.Column="1"
           Aspect="AspectFit"
           Margin="20" />
    
    <!-- 第三行,跨越两列 -->
    <Button Text="确认"
            Grid.Row="2"
            Grid.ColumnSpan="2"
            Margin="20"
            HorizontalOptions="Center" />
</Grid>

小结与后续学习路径

本文介绍了.NET MAUI的基础知识,包括:

  • MAUI的定义与特点
  • 与Xamarin.Forms的区别与改进
  • 开发环境搭建
  • 创建和运行第一个MAUI应用
  • 项目结构和关键文件
  • 应用和页面生命周期
  • 常见控件和布局

这些知识为开始MAUI开发提供了坚实的基础。要成为熟练的MAUI开发者,还需要:

  1. 深入XAML:掌握XAML语法、样式和资源系统
  2. 数据绑定与MVVM:学习数据绑定和MVVM架构模式
  3. 导航与Shell:掌握页面导航和Shell框架
  4. 本地数据存储:学习使用SQLite等技术存储数据
  5. Web服务集成:掌握HTTP请求和REST API调用
  6. 平台特定功能:学习如何访问设备功能和平台特定API

学习资源

以下是一些有用的.NET MAUI学习资源:

  1. .NET MAUI官方文档
  2. Microsoft Learn MAUI课程
  3. .NET MAUI GitHub仓库
  4. MAUI社区工具包
  5. MAUI示例应用

通过这些资源和实践,您将能够掌握.NET MAUI并创建出色的跨平台应用程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2375699.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

佰力博科技与您探讨表面电阻的测试方法及应用领域

表面电阻测试是一种用于测量材料表面电阻值的技术&#xff0c;广泛应用于评估材料的导电性能、静电防护性能以及绝缘性能。 1、表面电阻的测试测试方法&#xff1a; 表面电阻测试通常采用平行电极法、同心圆电极法和四探针法等方法进行。其中&#xff0c;平行电极法通过在试样…

鹅厂面试数学题

题目 一个圆上随机取三个点&#xff0c;求这三个点构成锐角三角形的概率。 解答 根据圆周角定理&#xff0c;此题目等价为&#xff1a;一条线段长度为1的线段随机取两个点分成三段&#xff0c;任意一段长度均不大于1/2的概率。记前两段的长度为&#xff0c;则第三段的长度为…

java基础-package关键字、MVC、import关键字

1.package关键字&#xff1a; &#xff08;1&#xff09;为了更好管理类&#xff0c;提供包的概念 &#xff08;2&#xff09;声明类或接口所属的包&#xff0c;声明在源文件首行 &#xff08;3&#xff09;包&#xff0c;属于标识符&#xff0c;用小写字母表示 &#xff0…

[6-2] 定时器定时中断定时器外部时钟 江协科技学习笔记(41个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 V 30 31 32 33 34 35 36 37 38 39 40 41

【PmHub后端篇】PmHub中基于自定义注解和AOP的服务接口鉴权与内部认证实现

1 引言 在现代软件开发中&#xff0c;尤其是在微服务架构下&#xff0c;服务接口的鉴权和内部认证是保障系统安全的重要环节。本文将详细介绍PmHub中如何利用自定义注解和AOP&#xff08;面向切面编程&#xff09;实现服务接口的鉴权和内部认证&#xff0c;所涉及的技术知识点…

多模态AI新纪元:Vertex AI Gemini与Spring AI深度集成实践

企业级AI集成进阶&#xff1a;Spring AI与Vertex AI Gemini的配置与调优实战 一、前沿技术&#xff1a;多模态模型的企业级配置范式 在生成式AI技术快速迭代的当下&#xff0c;企业级应用对模型配置的精细化需求日益增长。Vertex AI Gemini作为Google推出的多模态大模型&…

开源AI数字人分身克隆小程序源码系统深度剖析:从搭建到应用

在人工智能与小程序生态深度融合的当下&#xff0c;开源 AI 数字人分身克隆小程序源码成为开发者的热门工具。从搭建基础环境到实现实际应用&#xff0c;这一过程涉及多项技术与复杂流程。本文将带您深入剖析开源 AI 数字人分身克隆小程序源码&#xff0c;揭开其从搭建到应用的…

ETL背景介绍_1:数据孤岛仓库的介绍

1 ETL介绍 1.1 数据孤岛 随着企业内客户数据大量的涌现&#xff0c;单个数据库已不再足够。为了储存这些数据&#xff0c;公司通常会建立多个业务部门组织的数据库来保存数据。比如&#xff0c;随着数据量的增长&#xff0c;公司通常可能会构建数十个独立运行的业务数据库&am…

Linux系统:虚拟文件系统与文件缓冲区(语言级内核级)

本节重点 初步理解一切皆文件理解文件缓冲区的分类用户级文件缓冲区与内核级文件缓冲区用户级文件缓冲区的刷新机制两级缓冲区的分层协作 一、虚拟文件系统 1.1 理解“一切皆文件” 我们都知道操作系统访问不同的外部设备&#xff08;显示器、磁盘、键盘、鼠标、网卡&#…

智能体的典型应用:自动驾驶、智能客服、智能制造、游戏AI与数字人技术

本文为《React Agent&#xff1a;从零开始构建 AI 智能体》专栏系列文章。 专栏地址&#xff1a;https://blog.csdn.net/suiyingy/category_12933485.html。项目地址&#xff1a;https://gitee.com/fgai/react-agent&#xff08;含完整代码示​例与实战源&#xff09;。完整介绍…

国联股份卫多多与七腾机器人签署战略合作协议

5月13日&#xff0c;七腾机器人有限公司&#xff08;以下简称“七腾机器人”&#xff09;市场部总经理孙永刚、销售经理吕娟一行到访国联股份卫多多&#xff0c;同卫多多/纸多多副总裁、产发部总经理段任飞&#xff0c;卫多多机器人产业链总经理郭碧波展开深入交流&#xff0c;…

WebGL 开发的前沿探索:开启 3D 网页的新时代

你是否曾好奇&#xff0c;为何如今网页上能呈现出如同游戏般逼真的 3D 场景&#xff1f;这一切都要归功于 WebGL。它看似神秘&#xff0c;却悄然改变着我们浏览网页的体验。以往&#xff0c;网页内容大多局限于二维平面&#xff0c;可 WebGL 打破了这一限制。它究竟凭借什么&am…

激光雷达定位算法在FPGA中的实现——section3 Matlab实现和校验

1、校验section2的计算方法是否正确 以section1里面的图示 举个例子: 1.1 手动计算

AI+可视化:数据呈现的未来形态

当AI生成的图表开始自动“美化”数据&#xff0c;当动态可视化报告能像人类一样“讲故事”&#xff0c;当你的眼球运动直接决定数据呈现方式——数据可视化的未来形态&#xff0c;正在撕裂传统认知。某车企用AI生成的3D可视化方案&#xff0c;让设计师集体失业&#xff1b;某医…

[免费]微信小程序医院预约挂号管理系统(uni-app+SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序医院预约挂号管理系统(uni-appSpringBoot后端Vue管理端)&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序医院预约挂号管理系统(uni-appSpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩…

【网络入侵检测】基于源码分析Suricata的IP分片重组

【作者主页】只道当时是寻常 【专栏介绍】Suricata入侵检测。专注网络、主机安全&#xff0c;欢迎关注与评论。 目录 目录 1.概要 2. 配置信息 2.1 名词介绍 2.2 defrag 配置 3. 代码实现 3.1 配置解析 3.1.1 defrag配置 3.1.2 主机系统策略 3.2 分片重组模块 3.2.1…

LVGL简易计算器实战

文章目录 &#x1f4c1; 文件结构建议&#x1f539; eval.h 表达式求值头文件&#x1f539; eval.c 表达式求值实现文件&#xff08;带详细注释&#xff09;&#x1f539; ui.h 界面头文件&#x1f539; ui.c 界面实现文件&#x1f539; main.c 主函数入口✅ 总结 项目效果&…

代码随想录算法训练营第60期第三十四天打卡

大家好&#xff0c;我们今天的内容依旧是贪心算法&#xff0c;我们上次的题目主要是围绕多维问题&#xff0c;那种时候我们需要分开讨论&#xff0c;不要一起并发进行很容易顾此失彼&#xff0c;那么我们今天的问题主要是重叠区间问题&#xff0c;又是一种全新的贪心算法思想&a…

关于IDE的相关知识之二【插件推荐】

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///计算机爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于ide插件推荐的相关内容&#xff01…

Axure RP9:列表新增

文章目录 列表新增思路新增按钮操作说明保存新增交互设置列表新增 思路 利用中继器新增行实现列表新增功能 新增按钮操作说明 工具栏中添加新增图标及标签,在图标标签基础上添加热区;对热区添加鼠标单击时交互事件,同步插入如下动作:显示/隐藏动作,设置目标元件为新增窗…