Teilen über


Übersicht und Versionshinweise: WinUI 3 – Project Reunion 0.8 Preview (Mai 2021)

WinUI 3 ist ein natives Benutzererfahrungsframework (User Experience, UX) zur Erstellung moderner Windows-Apps. Es wird unabhängig vom Windows-Betriebssystem als Teil von Project Reunion (jetzt als Windows-App SDK bezeichnet) ausgeliefert. Das 0.8 Preview-Release stellt WinUI 3-Vorlagen in Visual Studio bereit, die Sie beim Erstellen von Apps mit einer WinUI 3-basierten Benutzeroberfläche unterstützen.

WinUI 3 – Project Reunion 0.8 Preview ist eine Vorabversion von WinUI 3 mit Fehlerbehebungen, allgemeinen Verbesserungen und experimentellen Features, von denen einige für das stabile Windows-App SDK 0.8-Release im Juni 2021 stabil sein werden.

Wichtig

Diese Vorschauversion ist für eine frühe Evaluierung und zum Sammeln von Feedback aus der Entwicklercommunity vorgesehen. Diese Version sollte NICHT für Produktions-Apps verwendet werden.

Wenn Sie eine Produktions-App mit Project Reunion und WinUI 3 ausliefern möchten, finden Sie weitere Informationen unter Übersicht und Versionshinweise: WinUI 3 – Project Reunion 0.5.

Verwenden Sie das GitHub-Repository für WinUI, um Feedback zu geben und Vorschläge und Probleme zu protokollieren.

Hinweis

Project Reunion ist der vorherige Codename für das Windows App SDK. In dieser Dokumentation wird weiterhin Project Reunion verwendet, wenn auf frühere Releases verwiesen wird, die diesen Codenamen verwendet haben.

Installieren von WinUI 3 – Project Reunion 0.8 Preview

Diese Version von WinUI 3 ist als Teil von Project Reunion 0.8 Preview verfügbar. Weitere Informationen zur Installation finden Sie unter:

Installieren von Tools für Vorschau- und experimentelle Kanäle des Windows App SDK

Da WinUI nun als Teil von Project Reunion ausgeliefert wird, laden Sie für den Einstieg die Visual Studio-Erweiterung (VSIX) für Project Reunion herunter, die eine Reihe von Entwicklertools und -komponenten enthält. Weitere Informationen zum Project Reunion-Paket finden Sie unter Bereitstellen von Apps, die Windows App SDK verwenden. Die Windows App SDK-VSIX enthält WinUI 3-Vorlagen in Visual Studio, die Sie zum Erstellen Ihrer WinUI 3-App verwenden.

Hinweis

Um die WinUI 3-Steuerelemente und -Features in Aktion zu sehen, können Sie den WinUI 3-Steuerelementkatalog von GitHub klonen und erstellen oder aus dem Microsoft Store herunterladen.

Nachdem Sie Ihre Entwicklungsumgebung eingerichtet haben, machen Sie sich unter WinUI 3-Vorlagen in Visual Studio mit den verfügbaren Vorlagen für Visual Studio-Projekte und -Elemente vertraut.

Weitere Informationen zu den ersten Schritten beim Erstellen einer WinUI 3-App finden Sie in den folgenden Artikeln:

Abgesehen von den Einschränkungen und bekannten Problemen ist das Erstellen einer App mithilfe der WinUI-Projekte vergleichbar mit dem Erstellen einer UWP-App mit XAML und WinUI 2. Daher lassen sich die meisten Anleitungsdokumentationen für UWP-Apps und die Windows.UI WinRT-Namespaces im Windows SDK anwenden.

Die WinUI 3-API-Referenzdokumentation ist hier verfügbar: WinUI 3 API-Referenz

Webansicht2

Um WebView2 mit diesem WinUI 3-Release zu verwenden, laden Sie Evergreen Bootstrapper oder Evergreen Standalone Installer herunter. Sofern Sie die WebView2-Runtime noch nicht installiert haben, finden Sie diese Installationsprogramme hier.

Windows-Community-Toolkit

Wenn Sie das Windows Community Toolkit verwenden, laden Sie die neueste Version herunter.

Visual Studio-Unterstützung

Um die neuesten, in WinUI 3 hinzugefügten Toolfeatures wie Hot Reload, Live Visual Tree und Live Property Explorer nutzen zu können, müssen Sie eine Vorschauversion von Visual Studio 2019 16.10 verwenden. Beachten Sie, dass es sich bei Visual Studio-Vorschauversionen um Vorabversionen handelt, daher können bei deren Verwendung zum Erstellen von WinUI 3-Apps Fehler und Einschränkungen auftreten.

Die folgende Tabelle zeigt die Kompatibilität von Visual Studio 2019-Versionen mit WinUI 3 – Project Reunion 0.5.

VS-Version WinUI 3 – Project Reunion 0.5
16.8 Nein
16,9 Ja, aber ohne Hot Reload, Live Visual Tree oder Live Property Explorer
16.10 Vorschauen Ja, mit allen WinUI 3-Tools (in Vorschau)

Aktualisieren Ihrer vorhandenen WinUI 3-App

Wenn Sie eine App mit einer früheren Vorschau- oder stabilen Version von WinUI 3 erstellt haben, können Sie das Projekt aktualisieren, damit es WinUI 3 – Project Reunion 0.8 Preview verwendet. Anweisungen finden Sie unter Aktualisieren vorhandener Projekte auf die neueste Version von Project Reunion.

Wichtige Änderungen in diesem Release

  • Das Pivot-Steuerelement steht jetzt in diesem Release zur Verfügung.
  • Die meisten kritischen Fehlerkorrekturen aus den Wartungsreleases Project Reunion v0.5.5, v0.5.6 und v0.5.7 sind ebenfalls in diesem Release enthalten. Informationen zu Wartungskorrekturen, die nicht in diese Vorschauversion integriert wurden, finden Sie unter Bekannte Probleme.

Liste der behobenen Fehler in WinUI 3 – Project Reunion 0.8 Preview

  • „x:Bind“ funktioniert in einem benutzerdefinierten „MenuFlyoutItem“ nicht (allgemeiner ausgedrückt: „x:Bind“ funktioniert in „ControlTemplate“ nicht, wenn der übergeordnete Namescope auch „x:Bind“ verwendet).

  • Popupfenster werden ausgeblendet, wenn das Fenster (oder die Insel) der obersten Ebene verschoben wird.

  • Die „StandardUICommand“-Seite im WinUI 3-Steuerelementekatalog wird nicht vollständig angezeigt.

  • Beim Klicken mit der rechten Maustaste in „TextBox“ stürzt die Anwendung ab.

  • Das Kontextmenü wird an der falschen Position für „EditableComboBox“ angezeigt.

  • Durch das Ändern der „RichTextBlock“-Auswahl mittels Toucheingabe wird der Auswahlindikator ausgeblendet.

  • Microsoft C++-Ausnahme: winrt::hresult_error an Arbeitsspeicherposition 0x..., wenn die „NavigationView“ verwendet wird.

  • WinUI 3-Fehlermeldung muss umformuliert werden: „'Windows.metadata' kann nicht aufgelöst werden“. Bitte installieren Sie das Windows SDK (Software Development Kit). Das Windows SDK wird mit Visual Studio installiert.“

  • Eigenart des VSM-Setters zum Auslösen einer Ausnahme besitzt Rückwärtslogik.

  • Verschieben des Fokus von WebView2 weg (falls erforderlich), wenn der Browserprozess abstürzt.

  • ProgressBar zeigt den Unterschied zwischen „Angehalten“ und „Fehler“ nicht an

  • „PointerReplay“ wird ständig ausgeführt.

  • „NavigationView“ verursacht Absturz in UWP, Reunion 0.5 Preview.

  • „AutoSuggestBox“, „ComboBox“ und „CommandBarFlyout“ legen ‚ShouldConstrainToRootBounds="false"‘ nicht in ihrem Popup fest.

  • WinUI 3 – Project Reunion 0.5 generiert C++-Ausnahmen für eine verwaltete C#-App.

  • WebView2 verliert den anfänglichen Registerkartenfokus.

  • WebView2 stürzt ab, wenn DPI nach Close() geändert wird.

  • Änderung der Darstellung von „AppBarButton“ mit Flyout auf „CommandBar“ in WinUI3.

Features und Funktionen, die in früheren WinUI 3-Vorschauen eingeführt wurden

Die folgenden Features und Funktionen wurden in vergangenen WinUI 3-Vorschaureleases eingeführt und werden in WinUI 3 – Project Reunion 0.8 Preview weiterhin unterstützt.

Hinweis

Einige der folgenden Funktionen bleiben weiterhin Teil der WinUI 3-Vorschauen, sind aber möglicherweise nicht Teil des nächsten unterstützten Releases. Diese Funktionen sind als experimentell gekennzeichnet und geben bei Verwendung in einer App eine Warnung aus. APIs, die Teil der WinUI 2.6-Vorabversion sind, sind in diesem Release ebenfalls als experimentell gekennzeichnet.

  • Möglichkeit zum Erstellen von Desktop-Apps mit WinUI, einschließlich .NET für Win32-Apps
  • Support auf Vorschauniveau für das Entwickeln von UWP-Apps
  • RadialGradientBrush
  • TabView-Aktualisierungen
  • Aktualisierungen am dunklen Design
  • Verbesserungen und Aktualisierungen für WebView2
    • Unterstützung hoher DPI-Werte
    • Unterstützung des Änderns der Größe und Verschiebens von Fenstern
    • Für eine neuere Version von Microsoft Edge aktualisiert
    • Nicht mehr erforderlich, um auf ein WebView2-spezifisches NuGet-Paket zu verweisen
  • SwapChainPanel
  • Unterstützung für MRT Core
    • Das macht Apps beim Start schneller und effizienter, und beschleunigt die Ressourcensuche.
  • Arm64-Unterstützung
  • Drag & Drop innerhalb und außerhalb von Apps
  • RenderTargetBitmap (derzeit nur XAML-Inhalte, keine SwapChainPanel-Inhalte)
  • Benutzerdefinierte Cursorunterstützung
  • Hintergrundthread-Eingabe
  • Verbesserungen an unserer Tools/Entwicklererfahrung:
    • Live Visual Tree, Hot Reload, Live Property Explorer und ähnliche Tools
    • Intellisense für WinUI 3
  • Erforderliche Verbesserungen für Open-Source-Migration
  • Funktionen für benutzerdefinierte Titelleisten: neue Window.ExtendsContentIntoTitleBar- und Window.SetTitleBar-APIs, mit denen Entwickler benutzerdefinierte Titelleisten in Desktop-Apps erstellen können.
  • Unterstützung für VirtualSurfaceImageSource
  • In-App-Acryl
  • Unterstützung für mehrere Fenster in Desktop-Apps
  • Eingabeüberprüfung

Bereitstellen von Feedback und Vorschlägen

Wir freuen uns über dein Feedback im GitHub-Repository von WinUI.

Einschränkungen und bekannte Probleme

WinUI 3 – Project Reunion 0.8 Preview ist genau das – eine Vorschau. Es sind Fehler, Einschränkungen und andere Probleme zu erwarten.

Für WinUI 3 – Project Reunion 0.8 sind die folgenden Probleme bekannt. Wenn Sie ein Problem finden, das im Folgenden nicht aufgeführt ist, informieren Sie uns, indem Sie Feedback zu einem vorhandenen oder neuen Problem über das WinUI-GitHub-Repository bereitstellen.

Plattform- und Betriebssystemunterstützung

WinUI 3 – Project Reunion 0.8 Preview ist mit PCs kompatibel, auf denen mindestens das Windows 10-Update vom Oktober 2018 (Version 1809, Build 17763) ausgeführt wird.

Entwicklertools

  • Es werden nur C#- und C++ /WinRT-Apps unterstützt.
  • Desktop-Apps unterstützen .NET 6 (und höher) und C# 9 und müssen in einer MSIX-App verpackt sein.
  • Keine Unterstützung für XAML-Designer.
  • Neue C++/CX-Apps werden nicht unterstützt. Ihre bestehenden Apps funktionieren jedoch weiterhin (steigen Sie so schnell wie möglich auf C++/WinRT um).
  • Entpackte Bereitstellung für Desktops wird nicht unterstützt.
  • Wenn Sie eine Desktop-App mit F5 ausführen, stellen Sie sicher, dass Sie das Paketerstellungsprojekt ausführen. Wenn Sie F5 für das App-Projekt drücken, wird eine ungepackte App ausgeführt, die WinUI 3 noch nicht unterstützt.

Fehlende Plattformfunktionen

  • Xbox-Unterstützung

  • HoloLens-Unterstützung

  • Windows-Popups

    • Genauer gesagt verhält sich die ShouldConstrainToRootBounds-Eigenschaft immer so, als ob Sie auf true festgelegt wäre, unabhängig vom Eigenschaftswert.
  • Freihandunterstützung, einschließlich:

  • Hintergrund-Acryl

  • MediaElement und MediaPlayerElement

  • MapControl

  • SwapChainPanel unterstützt keine Transparenz

  • AcrylicBrush and andere Effekte, die einen CompositionBackdropBrush verwenden, können keine Proben von einem SwapChainPanel oder einer WebView2 nehmen.

  • Global Reveal nutzt Fallbackverhalten, einen einfarbigen Pinsel

  • XAML Islands werden in diesem Release nicht unterstützt

  • Für die direkte Verwendung von WinUI 3 in einer bestehenden Nicht-WinUI-Desktop-App gilt die folgende Einschränkung: Der derzeit verfügbare Migrationspfad für eine bestehende App besteht darin, ein neues WinUI 3-Projekt zu Ihrer Lösung hinzuzufügen und Ihre Logik nach Bedarf anzupassen oder umzugestalten.

  • „Application.Suspending“ wird in Desktop-Apps nicht aufgerufen. Weitere Informationen finden Sie in der API-Referenzdokumentation für das Ereignis „Application.Suspending.

  • Die Ereignisse UISettings.ColorValuesChanged Event und AccessibilitySettings.HighContrastChanged Event werden in Desktop-Apps nicht mehr unterstützt. Dies kann zu Problemen führen, wenn Sie sie verwenden, um Änderungen in Windows-Designs zu ermitteln.

  • Um eine CompositionCapabilities-Instanz abzurufen, mussten Sie bisher CompositionCapabilites.GetForCurrentView() aufrufen. Die von diesem Aufruf zurückgegebenen Funktionen waren jedoch nicht von der Ansicht abhängig. Um dies zu behandelt und widerzuspiegeln, haben wir die statische Methode „GetForCurrentView() in dieser Version gelöscht, sodass Sie ein CompositionCapabilties-Objekt jetzt direkt erstellen können.

  • CoreWindow, ApplicationView, CoreApplicationView, CoreDispatcher und deren Abhängigkeiten werden in Desktop-Apps nicht unterstützt (siehe unten)

CoreWindow, ApplicationView, CoreApplicationView und CoreDispatcher in Desktop-Apps

Neu in WinUI 3 Preview 4 und ab jetzt standardmäßig: CoreWindow, ApplicationView, CoreApplicationViewCoreDispatcher und deren Abhängigkeiten sind in Desktop-Apps nicht verfügbar. Beispielsweise ist die Eigenschaft Window.Dispatcher immer leer (Null) , aber die Window.DispatcherQueue-Eigenschaft kann als Alternative verwendet werden.

Diese APIs funktionieren nur in UWP-Apps. In früheren Vorschauen konnten sie teilweise auch in Desktop-Apps verwendet werden, aber seit Preview 4 wurden sie vollständig deaktiviert. Diese APIs sind für den UWP-Fall konzipiert, in dem es nur ein Fenster pro Thread gibt, und ein Feature von WinUI3 besteht darin, künftig mehrere Fenster zu ermöglichen.

Es gibt APIs, die intern vom Vorhandensein dieser APIs abhängen. Diese APIs werden folglich in einer Desktop-App auch nicht unterstützt. Diese APIs verfügen in der Regel über eine statische GetForCurrentView-Methode. Beispielsweise UIViewSettings.GetForCurrentView.

Weitere Informationen zu betroffenen APIs sowie zu Problemumgehungen und Ersatz für diese APIs finden Sie unter In Desktop-Apps nicht unterstützte Windows-Runtime-APIs.

Bekannte Probleme

  • Möglicherweise erhalten Sie einen Buildfehler aufgrund nicht übereinstimmender Versionen des .NET SDK und der „winrt.runtime.dll“. Sie können die folgende Problemumgehung versuchen:

    Legen Sie Ihr .NET SDK explizit auf die richtige Version fest. Um die richtige Version für Ihre App zu ermitteln, suchen Sie das <TargetFramework>-Tag in Ihrer Projektdatei. Fügen Sie unter Verwendung der Windows SDK-Buildnummer, im <TargetFramework>-Tag (z. B. 18362 oder 19041), auf die Ihre App abzielt, das folgende Element zu Ihrer Projektdatei hinzu, und speichern Sie Ihr Projekt anschließend:

    <ItemGroup>            
        <FrameworkReference Update="Microsoft.Windows.SDK.NET.Ref" RuntimeFrameworkVersion="10.0.{Target Windows SDK Build Number}.16" />
        <FrameworkReference Update="Microsoft.Windows.SDK.NET.Ref" TargetingPackVersion="10.0.{Target Windows SDK Build Number}.16" />
    </ItemGroup>
    

    Beachten Sie, dass diese Problemumgehung für .NET SDK 5.0.203 und früher erforderlich ist, aber für .NET SDK 5.0.204 oder 5.0.300 nicht erforderlich ist.

  • Bei Verwendung von Visual Studio 2019 16.10 Preview 2 kann die visuelle Livestruktur zu einem Absturz führen. Um dies zu vermeiden, aktualisieren Sie auf die neueste Version von Visual Studio 2019 16.10 Preview.

  • Fenstertitel-Schaltflächen können falsch platziert sein, wenn „SetTitleBar“ nicht festgelegt oder NULL ist.

Im WinUI 3-Steuerelementekatalog (früher XAML-Steuerelementekatalog – WinUI 3-Version) finden Sie eine Beispiel-App, die alle Steuerelemente und Features enthält, die Bestandteil von WinUI 3 – Project Reunion 0.8 Preview sind.

WinUI 3-Steuerelementekatalog-App
Beispiel für eine WinUI 3-Steuerelementskatalog-App

Die WinUI 3-Steuerlementekatalog-App ist über den Microsoft Store verfügbar.

Sie können das Beispiel auch herunterladen, indem Sie das GitHub-Repository klonen. Dazu klonen Sie den winui3-Branch mit dem folgenden Befehl:

Hinweis

Dieses GitHub-Repository enthält auch einen winui3preview-Branch, der eine Version des WinUI 3-Steuerelementkatalogs bereitstellt, die WinUI 3 – Project Reunion 0.8 Preview verwendet.

git clone --single-branch --branch winui3 https://github.com/microsoft/Xaml-Controls-Gallery.git

Vergewissere dich nach dem Klonen, dass du in der lokalen Git-Umgebung zum Branch winui3 wechselst:

git checkout winui3

Weitere Informationen: