尽管Microsoft Build才刚过来不久,但咱们在这里会持续分享咱们在.NET多平台应用程序 UI (.NET MAUI) 的继续停顿。在此版本中,咱们启用了动画和视图转换,实现了多个 UI 组件的移植,并对单个我的项目模板进行了改良。
咱们还公布了第一批涵盖 .NET MAUI 介绍和根底方面的预览文档:https://docs.microsoft.com/en-us/dotnet/maui/。

动画

在 .NET MAUI 中有几种执行动画的办法,其中最简略的办法是应用视图扩大办法,例如 FadeTo、RotateTo、ScaleTo、TranslateTo 等。在以下示例中,我应用新的 HandlerAttached 事件获取对每个绑定到布局的视图的援用(请参阅可绑定布局):

<DataTemplate x:Key="FavouriteTemplate">    <Frame        AttachedHandler="OnAttached"        Opacity="0">        ...</Frame><FlexLayoutBindableLayout.ItemTemplate="{StaticResource FavouriteTemplate}"BindableLayout.ItemsSource="{Binding Favorites}" >...</FlexLayout>

当页面呈现时,我会以稍微交织的形式对视图进行动画解决,以创立丑陋的级联成果。

public partial class FavoritesPage : ContentPage{ List<Frame> tiles = new List<Frame>();void OnAttached(object sender, EventArgs e){  Frame f = (Frame)sender;tiles.Add(f);}protected override async void OnAppearing(){base.OnAppearing();await Task.Delay(300);TransitionIn();}async void TransitionIn(){foreach (var item in tiles){item.FadeTo(1, 800);await Task.Delay(50);   }}    }

如需更残缺的视图动画编排,请查看自定义动画文档,该文档演示了增加多个能够并行运行的子动画。
您能够从 GitHub 上的 WeatherTwentyOne 我的项目查看和运行此示例的源代码。

用户界面组件

在此版本中,几个控件当初已将所有属性和事件从 Xamarin.Forms 的渲染器体系结构移植到处理程序,包含 ActivityIndicator、CheckBox、Image 和 Stepper。 在之前的预览版中,您须要查看是否移植了控件并从兼容包中为不可用的渲染器注册渲染器。 在 .NET MAUI Preview 5 中,咱们通过更新 UseMauiApp 扩大(请参阅 Startup wiki)为您连贯所有控件,无论它们是基于处理程序还是渲染器,使这变得更加容易。

Preview 5 中的另一个新性能是首次引入 Shell,它是一个应用程序容器,可提供 URI 导航和实现弹出菜单,选项卡的疾速办法。 首先,将 Shell 作为根元素增加到 App.xaml.cs 中的窗口中。 我遵循的典型模式是将其命名为“AppShell”,但您能够随便命名。

protected override IWindow CreateWindow(IActivationState activationState){    return new Microsoft.Maui.Controls.Window(        new AppShell()    );}

当初,在您的 AppShell 类中,开始应用代表您心愿显示的导航的类型(FlyoutItem 或 Tab)应用内容填充菜单。 这些不是 UI 控件,而是代表将创立这些 UI 控件的类型。 您能够稍后应用咱们将在Preview 6 中介绍的内容模板来设置控件的款式。

<Shell xmlns="http://schemas.microsoft.com/dotnet/2021/maui"        xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"       xmlns:pages="clr-namespace:ControlGallery.Pages"       Title="ControlGallery"       x:Class="ControlGallery.AppShell">    <FlyoutItem Title="Margin and Padding">        <ShellContent Route="marginpadding"                       ContentTemplate="{DataTemplate pages:ControlsPage}" />    </FlyoutItem>    <FlyoutItem Title="ActivityIndicator">        <ShellContent Route="activityindicator"                       ContentTemplate="{DataTemplate pages:ActivityIndicatorPage}" />    </FlyoutItem>    ...</Shell>

在咱们的 .NET MAUI 状态页面上获取无关控件、布局和性能的最新信息。

单个我的项目模板更新

咱们在此版本中获得了停顿,将多个 WinUI 我的项目合并为一个。 当初,当您创立一个新的maui我的项目时,您将看到两个我的项目:多指标 .NET MAUI 我的项目和 WinUI 我的项目。

当初要运行WinUI我的项目,您就不会对抉择哪个我的项目感到困惑了。这是朝着只有一个我的项目能够构建并部署到所有反对平台的最终愿景迈进了一步。为了反对这个性能,你须要在Visual Studio 16.11 Preview 2中装置这些Project Reunion 0.8 (Preview)扩大。

  • Project Reunion(预览)扩大
  • 单我的项目MSIX打包工具(预览)

.NET MAUI 预览版 5 入门

在此版本中,咱们启用了在不增加自定义 NuGet 源的状况下还原您的我的项目。只需创立一个新我的项目并运行它!要获取所有最新内容,咱们持续倡议运行 maui-check dotnet 工具。
装置:

$ dotnet tool install -g redth.net.maui.check

当初运行并遵循更新以获取 .NET 6 Preview 5、平台 SDK、.NET MAUI、我的项目模板,甚至查看您的环境是否存在第三方依赖项。

$ maui-check

如果您心愿本人一步一步来,您能够依照这些阐明独自装置所有内容。
装置后,您就能够基于Preview 5 模板创立新应用程序了。

$ dotnet new maui -n MauiFive

在 Visual Studio 16.11 Preview 1 中关上您的新 MauiFive.sln 并运行您抉择的平台!

留神:如果您之前装置了 .NET 6 Preview 4(间接或通过装置 .NET MAUI),那么您可能会在装置和运行 .NET 6
Preview 5 时遇到问题。无关如何修复的阐明,请参阅 .NET 6 已知问题装置。

渴望尝试Visual Studio 2022 Preview1吗?开始摸索挪动平台应用安卓模拟器或者近程iOS设施,或连贯Mac主机。确保禁用XAML热重载以防止类型谬误,或保持应用Visual Studio 2019版本16.11 Preview 2.2。
在将来,Project Reunion扩大将反对Visual Studio 2022,你将可能应用Windows上的所有平台。
如果你曾经有了 .NET MAUI我的项目,想要迁徙到Preview 5,我倡议你创立一个像下面那样的新我的项目,并将你的文件复制到多指标我的项目中,这样你就能够防止协调WinUI我的项目的麻烦。
无关应用.NET MAUI的更多信息,请参考咱们新的文档网站。

欢送反馈

请让咱们晓得您应用.NET MAUI Preview 5创立新的应用程序的教训,通过在dotnet/ MAUI GitHub上与咱们单干。
要理解将来版本中将要公布的内容,请拜访咱们的产品路线图。
有任何技术问题,请在 Microsoft Q&A 上发问。