.NET MAUI for .NET 7 的新功能

.NET 7 是 .NET 6 的繼任者,著重於整合、現代化、簡單且 快速。 由於使用基礎外部相依性,例如 Xcode 或 Android SDK 工具,所以 .NET 多平臺應用程式 UI (.NET MAUI) 支援原則與 .NET 和 .NET Core 支持原則不同。 如需詳細資訊,請參閱 .NET MAUI 支持原則

本文列出 .NET MAUI for .NET 7 的新功能,並提供每個專案詳細信息的連結。

如需 .NET 7 新功能的相關信息,請參閱 .NET 7 的新功能。

新功能

適用於 .NET 7 的 .NET MAUI 可解決最上層的意見反應問題,並引進下列新功能:

  • 控件 Map 是用於顯示和標註地圖的跨平台檢視。 控件Map會在每個平臺上使用原生地圖控件,並由 Microsoft.Maui.Controls.地圖NuGet 套件。 如需詳細資訊,請參閱 對應
  • 控件 TwoPaneView 是可折疊裝置的容器控件,提供兩個檢視,可並排或從上到下,在可用空間中重設大小和位置內容。 此控件是由 Microsoft.Maui.Controls.Foldable NuGet 套件所提供。
  • 類別 PointerGestureRecognizer 會執行指標手勢辨識,並偵測滑鼠指標何時進入、結束和移動檢視。 如需詳細資訊,請參閱 辨識指標手勢。 .NET MAUI 也會定義 PointerOver 視覺狀態,當檢視具有滑鼠游標停留在檢視上方時,可以變更檢視的視覺外觀。 如需詳細資訊,請參閱 視覺狀態
  • 類別 Window 會定義其他屬性,並讓視窗定位並調整在桌面平臺上的大小。 如需詳細資訊,請參閱 .NET MAUI Windows
  • 當使用者在檢視上休息指標時,即可顯示檢視的工具提示。 如需詳細資訊,請參閱 顯示工具提示
  • 操作功能表可以新增至任何衍生自 Element、在Mac Catalyst和 Windows 上的控制件。 如需詳細資訊,請參閱 顯示操作功能表
  • 功能表欄可以包含分隔符,這是分隔功能表中項目的水平線。 如需詳細資訊,請參閱 顯示功能表欄
  • 為了回應所引發的 iOS 生命週期事件,會叫用其他 .NET MAUI 委派。 如需詳細資訊,請參閱 應用程式生命週期
  • iOS 和 Mac Catalyst 上 的基礎原生控件 WebView 可以使用 對象來設定 WKWebViewConfiguration 。 如需詳細資訊,請參閱 在 iOS 和 Mac Catalyst 上設定原生 WebView。 iOS/Mac 上的 WebView 組態

此外,MessagingCenter在 CommunityToolkit.Mvvm NuGet 套件已被取代並取代WeakReferenceMessenger為 。

效能

效能是 .NET MAUI 在 .NET 7 中的主要焦點:

  • 在Android上,啟動效能已改善。
  • 在 iOS 上,應用程式大小已減少。
  • 已優化檢視的轉譯路徑。
  • 許多問題都已解決,這影響了 中 CollectionView捲動的平滑度。

如需詳細資訊,請參閱 .NET MAUI 中的 .NET 7 效能改進。

從 .NET 6 升級

若要將專案從 .NET 6 升級至 .NET 7,請開啟 . csproj 檔案,並將 Target Framework Monikers (TFM) 從 6 變更為 7。 下列範例顯示 .NET 6 專案的 TFM:

<TargetFrameworks>net6.0-ios;net6.0-android;net6.0-maccatalyst;net6.0-tizen</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows')) and '$(MSBuildRuntimeType)' == 'Full'">$(TargetFrameworks);net6.0-windows10.0.19041</TargetFrameworks>

下列範例顯示 .NET 7 專案的 TFM:

<TargetFrameworks>net7.0-ios;net7.0-android;net7.0-maccatalyst;net7.0-tizen</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows')) and '$(MSBuildRuntimeType)' == 'Full'">$(TargetFrameworks);net7.0-windows10.0.19041</TargetFrameworks>

另請參閱