我们很高兴发布.NET 多平台应用程序UI (.NET MAUI) 候选版本3,这个版本包含一系列新的改进。与以前的候选版本一样,RC3 包含在"上线"支持政策中,这意味着Microsoft 为您的MAUI生产应用程序提供技术支持。

要开始使用.NET MAUI,请安装或升级到最新的Visual Studio 2022 预览版并选择".NET 多平台应用程序UI 开发"工作负载。这将安装您需要的所有.NET 6 组件,并启用预览功能以使您的.NET MAUI 开发体验更加高效。

有关将Xamarin 库迁移到.NET 6 和.NET MAUI 的指导,请查看 Xamarin 博客上的这些提示

专注于导航

.NET MAUI 为您提供了两种在应用程序中实现导航的主要方法。最简单但功能强大的选项是通过Shell来运行您的应用程序,Shell加强了针对桌面和移动模式的优化。第二种选择是直接使用基本导航页面控件:FlyoutPageTabbedPageNavigationPage

Shell Base Controls
Flyout Yes Yes
Tabs Yes Yes
Navigation URI Based Push/Pop
Passing Data URI Based View Models
Template-able Yes No

您应该用什么呢?.NET MAUI 新项目模板实现了Shell并提供了优化的体验,因此我们建议您从该模板开始。如果将来您想更换特定控件,您仍然可以重用所有UI。Shell是一个UI 控件,用于托管您的应用程序页面并提供弹出菜单和选项卡菜单。

模板项目包含一个带有单个页面的"AppShell.xaml",它被分配给了App.MainPage,为了更好的看到Flyout控件的效果,并简单的添加更多的页面,只需开启flyout通过更改.App.MainPageShell.FlyoutBehavior

<Shell
x:Class="MauiApp2.AppShell"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:MauiApp2"
Shell.FlyoutBehavior="Flyout"> <ShellContent
Title="Home"
ContentTemplate="{DataTemplate local:MainPage}"
Route="MainPage" /> <ShellContent
Title="Items"
ContentTemplate="{DataTemplate local:ItemsPage}"
Route="ItemsPage" /> </Shell>

ShellContent使您能够描述用于导航的URI 路由,并使用数据模板以便按需加载页面以保持启动性能。更明确地说,您可以将ShellContent导航别名包装起来,以清楚地指示Shell 如何呈现您的UI。

<FlyoutItem Title="Home" FlyoutIcon="home.png">
<ShellContent ...>
</FlyoutItem> <FlyoutItem Title="Items" FlyoutIcon="store.png">
<ShellContent ...>
</FlyoutItem>

Shell 支持Flyout控件的许多自定义,包括设置背景样式、覆盖内容的背景、模板页眉、页脚、整个内容或仅菜单项。您还可以设置弹出按钮的宽度并使其保持打开或完全隐藏。以下是一些不同设计的示例:

要显示选项卡,您只需替换FlyoutItem为Tab. 要对选项卡集合进行分组,您可以将它们进一步包装在TabBar. 根据需要混合和匹配应用程序的页面,并将Shell为您完成所有导航。

有关自定义flyout的更多信息,请查看Shell Flyout文档。

当您需要导航到应用程序中更深入的页面时,您可以声明自定义路由,并通过URI 导航——甚至传递查询字符串参数。

// declare a new route
Routing.RegisterRoute(nameof(SettingsPage), typeof(SettingsPage)); // execute a route
await Shell.Current.GoToAsync(nameof(SettingsPage)); // execute a route passing data
await Shell.Current.GoToAsync($"{nameof(SettingsPage)}?setting=appearance"); // receive querystring value
[QueryProperty(nameof(SelectedSubSection), "setting")]
public partial class TipsPage : ContentPage
{
...
public string SelectedSubSection { get;set;}
...
}

除了参数之外,您还可以通过.NET MAUI 引入的新API 传递复杂的数据对象:

// execute a route passing full object
var person = new Person { Name="James" };
await Shell.Current.GoToAsync("DetailsPage", new Dictionary<string, object>
{
{ "person", person }
}); // received the object
[QueryProperty(nameof(Person), "person")]
public partial class DetailsPage : ContentPage
{
Person person;
public Person Person
{
get => person;
set => person = value;
}
}

查看.NET MAUI Workshop以获取更多示例。

该QueryProperty属性将传入的查询字符串参数路由到提供的公共属性。在实现MVVM 模式时,您也可以使用视图模型执行此操作。

有关使用Shell 导航的更多信息,请查看Shell 文档

从今天开始

要在Windows 上获取.NET MAUI RC3,请安装 Visual Studio 2022 预览版或将其更新到版本17.3 预览版1。在安装程序中,确认在"使用.NET 进行移动开发"工作负载下选中了.NET MAUI(预览版)。

要在Mac 上使用.NET MAUI RC3,请按照wiki 上的命令行说明进行操作。Visual Studio 2022 for Mac 中对.NET MAUI 的支持将在未来的预览版中正式发布。

Release Candidate 3发行说明位于 GitHub 上。有关.NET MAUI 入门的更多信息,请参阅我们的文档迁移提示表,了解升级项目时要采用的更改列表。

关于Xamarin 支持的提醒

Xamarin 支持政策仍然有效,该政策指明在初始发布后的2 年内微软会继续支持涵盖这些产品。最后一次发布是在2021 年11 月,因此支持将持续到2023 年11 月。

我们需要您的反馈

按照我们的简单指南安装适用于Windows 的Visual Studio 2022 的最新预览版(17.3 预览版1),并立即构建您的第一个多平台应用程序。

我们很乐意听取您的意见!当您遇到任何问题时,请在 GitHub 上的dotnet/maui 提交报告。

MAUI候选版本3发布啦的更多相关文章

  1. .NET MAUI发布了期待已久的候选版本(RC1)

    作者:David Ortinau 我们激动地宣布在4/13/2022.NET多平台应用UI (.NET MAUI)发布了候选版本.SDK现在已经集成好了API,可以更新库,并为GA(通用可用性)兼容性 ...

  2. React 17 发布候选版本, 没有添加新功能

    React 17 发布候选版本, 没有添加新功能 React v17.0 Release Candidate: No New Features https://reactjs.org/blog/202 ...

  3. Linux Kernel 4.8分支第4个候选版本发布

    导读 今天,大神Linus Torvalds宣布了Linux 4.8分支的第四个候选版本,该候选版本在提供常规驱动更新.架构改善和部分KVM调整之外最大的新功能就是修复了英特尔Skylake电源管理B ...

  4. Fedora 25 Alpha版本今天发布啦

    时隔Fedora 24发布后的3个月,Fedora项目团队非常开心的宣布任何感兴趣的用户都能下载和测试即将到来的Fedora 25操作系统的Alpha预发布版本,在Fedora 25 Alpha里程碑 ...

  5. 【学习笔记】【Design idea】二、产品内测、公测、候选版本的概念及版本代码的书写

    一.前言 参考:百度百科 https://baike.baidu.com/item/beta/640969?fr=aladdin 广义上对测试有着三个传统的称呼:Alpha(α).Beta(β)和Ga ...

  6. 【转】MongoDB 3.0 正式版本即将发布,强力推荐

    MongoDB 今天宣布3.0 正式版本即将发布.这标志着 MongoDB 数据库进入了一个全新的发展阶段,提供强大.灵活而且易于管理的数据库管理系统. MongoDB 3.0 在性能和伸缩性方面都有 ...

  7. RDIFramework.NET平台代码生成器V3.1版本全新发布-更新于2016-10-29(提供下载)

    本次主要更新内容: 1.增加对Oracle表创建语句的查看. 2.新增对MySql的代码生成支持. 3.全面重构对多线程的支持,改变以前会无故退出的现象. RDIFramework.NET代码生成器V ...

  8. RDIFramework.NET平台代码生成器V3.0版本全新发布-更新于20160518(提供下载)

    最新版本请转到:RDIFramework.NET平台代码生成器V3.1版本全新发布-更新于2016-10-08(提供下载) RDIFramework.NET代码生成器V3.0版本修改了针对3.0版本的 ...

  9. RDIFramework.NET ━ .NET快速信息化系统开发框架钜献 V2.9 版本震撼发布

    RDIFramework.NET ━ .NET快速信息化系统开发框架钜献 V2.9 版本震撼发布 全新体验.全新感觉.2015钜献! 继上个版本“RDIFramework.NET V2.8版本发布”5 ...

随机推荐

  1. 使用缓存(Cache)的几种方式,回顾一下~~~

    前言 如今缓存成为了优化网站性能的首要利器,缓存使用的好,不仅能让网站性能提升,让用户体验变好,而且还能节约成本(增加一台缓存服务器可能就节约好几台机器):那平时小伙伴们都使用哪些缓存方式呢?这里就来 ...

  2. nodejs 实现 磁力链接资源搜索 BT磁力链接爬虫

    项目简介 前端站点 项目效果预览 http://findcl.com 使用 nodejs 实现磁力链接爬虫 磁力链接解析成 torrent种子信息,保存到数据库,利用 Elasticsearch 实现 ...

  3. 给一个非矩形数组(Nonrectangular Arrays)

    Nonrectangular Arrays(非矩形数组)  public class Test {     public static void main(String[] args) {       ...

  4. Python实现简单用户注册信息管理系统

    运行效果: 注意:运行前请在同一目录下创建一个userdata.bin用于保存用户数据 源代码: 1 # coding:utf-8 2 ''' 3 用户注册信息管理系统 4 功能包括: 5 1.查看全 ...

  5. DOCTYPE(⽂档类型) 的作⽤

    DOCTYPE是HTML5中一种标准通用标记语言的文档类型声明,它的目的是告诉浏览器(解析器)应该以什么样(html或xhtml)的文档类型定义来解析文档,不同的渲染模式会影响浏览器对 CSS 代码甚 ...

  6. redis从0-1学习记录(完结)

    1. NoSQL(not only sql):不仅仅是数据库,非关系型数据库,关系型数据库是以表格的行列进行存储的,而非关系型数据库是以键值对进行存储,不需要固定的格式.非关系型数据库的特点,方便扩展 ...

  7. Visual Studio 2022 git error Unable to negotiate with xx.xxx.xxxx port 22: no matching host key type found. Their offer: ssh-rsa

    前言 前两天因为升级了Git导致git提交拉取的时候都提示下面这个异常,然后经过一番折腾以后终于把这个问题解决了.但是今天我升级了下Visual Studio 2022将其升级到了17.1.3版本然后 ...

  8. JavaFX入门及相关问题

    下个星期是我们专业的课程设计专周,主要是做一个Java的桌面应用程序,老师上课讲的是用Swing来开发图形化界面,但是听朋友说到一个可视化的图形界面工具JavaFX,本 人愚笨,弄了一天才大致调试完成 ...

  9. MySQL---增删改查数据库、表、记录

    对库的操作 # 增 create database db1 charset utf8; # 删 drop database db1; # 改 alter database db1 charget gb ...

  10. 小程序已成为超级APP必选项,逐鹿私域“留量”

    截止2021年底,中国移动互联网月活跃用规模达到11.74亿人,增速逐渐呈放缓趋势,用户渗透率接近天花板.客户的增长速度越趋于平缓,品牌在不同成长阶段也要适应增长节奏的变化,越来越多主流商家不得不利用 ...