在嗎?看看MAUI候選版本3!

語言: CN / TW / HK

本文閲讀時間:5分鐘

我們很高興發佈 .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 博客上的這些提示 。

  • Xamarin博客上的這些提示

    https://devblogs.microsoft.com/xamarin/tips-for-porting-your-xamarin-library-to-dotnet-maui/?ocid=AID3042760

專注於導航

.NET MAUI 為您提供了兩種在應用程序中實現導航的主要方法。最簡單但功能強大的選項是通過Shell來運行您的應用程序, Shell 加強了針對桌面和移動模式的優化。第二種選擇是直接使用基本導航頁面控件:FlyoutPage、TabbedPage和NavigationPage。

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通過更改 Shell.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控件的許多自定義,包括設置背景樣式、覆蓋內容的背景、模板頁眉、頁腳、整個內容或僅菜單項。您還可以設置彈出按鈕的寬度並使其保持打開或完全隱藏。以下是一些不同設計的示例:

要顯示選項卡,您只需替換 FlyoutItemTab . 要對選項卡集合進行分組,您可以將它們進一步包裝在 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 文檔。

  • FlyoutPage

    https://translate.google.com/website?sl=auto&tl=zh-CN&hl=en&client=webapp&u=https://docs.microsoft.com/dotnet/maui/user-interface/pages/flyoutpage

  • TabbedPage

    https://translate.google.com/website?sl=auto&tl=zh-CN&hl=en&client=webapp&u=https://docs.microsoft.com/dotnet/maui/user-interface/pages/tabbedpage

  • NavigationPage

    https://translate.google.com/website?sl=auto&tl=zh-CN&hl=en&client=webapp&u=https://docs.microsoft.com/dotnet/maui/user-interface/pages/navigationpage

  • Shell Flyout

    https://docs.microsoft.com/dotnet/maui/fundamentals/shell/flyout?ocid=AID3042760

  • .NET MAUI Workshop

    https://github.com/dotnet-presentations/dotnet-maui-workshop/tree/main/Part 3 - Navigation

  • Shell 文檔

    https://docs.microsoft.com/dotnet/maui/fundamentals/shell/navigation?ocid=AID3042760

從今天開始  

要在 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 年內微軟會繼續支持涵蓋這些產品。 Xamarin 最後一次發佈是在 2021 年 11 月,因此支持將持續到 2023 年 11 月。

  • 請安裝 Visual Studio 2022 預覽版或將其更新

    https://aka.ms/vs2022preview

  • 命令行説明進行操作

    https://github.com/dotnet/maui/wiki/macOS-Install

  • 發行説明位於 GitHub 上

    https://github.com/dotnet/maui/releases/tag/6.0.300-rc.3

  • 文檔

    https://docs.microsoft.com/dotnet/maui/get-started/installation?ocid=AID3042760

  • 遷移提示表

    https://github.com/dotnet/maui/wiki/Migration-to-Release-Candidate

  • Xamarin 支持政策

    https://dotnet.microsoft.com/platform/support/policy/xamarin?ocid=AID3042760

我們需要您的反饋

按照我們的簡單指南安裝適用於 Windows 的 Visual Studio 2022 的最新預覽版(17.3 預覽版 1),並立即構建您的第一個多平台應用程序。

我們很樂意聽取您的意見!當您遇到任何問題時,請在 GitHub 上的 dotnet/maui 提交報告。

  • 按照我們的簡單指南

    https://docs.microsoft.com/dotnet/maui/get-started/first-app?ocid=AID3042760

  • 在 GitHub 上的 dotnet/maui 提交報告

    https://github.com/dotnet/maui/issues/new/choose

謝謝你讀完了本文!歡迎在 評論區留言 分享你的想法,並且 轉發到朋友圈

如果你對本文青睞有加,想要轉載到自己的平台, 請在後台回覆「轉載」 與我們取得聯繫!

長按識別二維碼

關注微軟中國MSDN

Xamarin Library移動到 .NET MAUI