Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
WinUI 3 ist ein systemeigenes UX-Framework (User Experience) zum Erstellen moderner Windows-Apps. Es wird unabhängig vom Windows-Betriebssystem als Teil von Project Reunion (jetzt als Windows App SDK bezeichnet) ausgeliefert. Die 0.8 Preview-Version stellt WinUI 3-Vorlagen in Visual Studio bereit, mit denen Sie mit der Erstellung von Apps mit einer WinUI 3-basierten Benutzeroberfläche beginnen können.
WinUI 3 – Project Reunion 0.8 Preview ist eine Vorabversion von WinUI 3, die Fehlerkorrekturen, allgemeine Verbesserungen und experimentelle Features enthält , von denen einige für die stabile Version von Windows App SDK 0.8 im Juni 2021 stabilisiert werden.
Von Bedeutung
Diese Vorschauversion ist für eine frühzeitige Auswertung vorgesehen und dient zum Sammeln von Feedback aus der Entwicklercommunity. Sie sollte NICHT für Produktions-Apps verwendet werden.
Wenn Sie eine Produktions-App mit Project Reunion und WinUI 3 versenden möchten, finden Sie unter Übersicht und Versionshinweise: WinUI 3 – Project Reunion 0.5.
Verwenden Sie das WinUI GitHub-Repository , 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 Project Reunion weiterhin verwendet, wenn auf frühere Versionen verwiesen wird, die diesen Codenamen verwendet haben.
Installieren von WinUI 3 – Project Reunion 0.8 Preview
Diese Version von WinUI 3 ist als Teil der Project Reunion 0.8 Preview verfügbar. Informationen zur Installation finden Sie unter:
Installieren von Tools für Vorschau- und experimentelle Kanäle des Windows App SDK
Da WinUI als Teil von Project Reunion ausgeliefert wird, laden Sie die Project Reunion Visual Studio Extension (VSIX) herunter, um zu beginnen, die eine Reihe von Entwicklertools und -komponenten enthält. Weitere Informationen zum Project Reunion-Paket finden Sie unter Bereitstellen von Apps, die das Windows App SDK verwenden. Das Windows App SDK VSIX enthält WinUI 3-Vorlagen in Visual Studio , die Sie zum Erstellen Ihrer WinUI-App verwenden.
Hinweis
Um WinUI 3-Steuerelemente und -Features in Aktion zu sehen, können Sie den WinUI 3-Katalog von GitHub klonen und erstellen oder aus dem Microsoft Store herunterladen.
Nachdem Sie Ihre Entwicklungsumgebung eingerichtet haben, lesen Sie WinUI 3-Vorlagen in Visual Studio , um sich mit den verfügbaren Visual Studio-Projekt- und Elementvorlagen vertraut zu machen.
Weitere Informationen zum Erstellen einer WinUI-App finden Sie in den folgenden Artikeln:
Neben den Einschränkungen und bekannten Problemen ähnelt das Erstellen einer App mit winUI-Projekten dem Erstellen einer UWP-App mit XAML und WinUI 2. Daher gelten die meisten Anleitungen für UWP-Apps und die Windows.UI WinRT-Namespaces im Windows SDK.
WinUI 3 API-Referenzdokumentation ist hier verfügbar: WinUI 3-API-Referenz
WebView2
Um WebView2 mit dieser WinUI 3-Version zu verwenden, laden Sie den Evergreen Bootstrapper oder Evergreen Standalone Installer auf dieser Seite herunter, wenn Sie die WebView2-Runtime noch nicht installiert haben.
Windows Community Toolkit
Wenn Sie das Windows Community Toolkit verwenden, laden Sie die neueste Version herunter.
Visual Studio-Unterstützung
Um die neuesten Tools zu nutzen, die in WinUI 3 hinzugefügt wurden, z. B. Hot Reload, Live Visual Tree und Live Property Explorer, müssen Sie eine Vorschauversion von Visual Studio 2019 16.10 verwenden. Bitte beachten Sie, dass Visual Studio-Vorschauversionen Vorabversionen sind, sodass Beim Verwenden von Vorschauversionen von Visual Studio zum Erstellen von WinUI-Apps Fehler und Einschränkungen auftreten können.
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 der Vorschau) |
Aktualisieren Ihrer vorhandenen WinUI-App
Wenn Sie eine App mit einer früheren Vorschau oder einer stabilen Version von WinUI 3 erstellt haben, können Sie das Projekt aktualisieren, um WinUI 3 – Project Reunion 0.8 Preview zu verwenden. Anweisungen finden Sie unter Aktualisieren vorhandener Projekte auf die neueste Version von Project Reunion.
Wichtige Änderungen, die in dieser Version eingeführt wurden
- Das Pivot-Steuerelement steht jetzt in diesem Release zur Verfügung.
- Die meisten kritischen Fehlerbehebungen aus den Wartungsversionen Von Project Reunion v0.5.5, v0.5.6 und v0.5.7 sind ebenfalls in dieser Version enthalten. Informationen zu Wartungsfixes, die es nicht in diese Vorschau geschafft haben, finden Sie unter "Bekannte Probleme".
Liste der in WinUI 3 behobenen Fehler – Project Reunion 0.8 Preview
x:Bind funktioniert nicht in einem benutzerdefinierten MenuFlyoutItem (im Allgemeinen funktioniert x:Bind in ControlTemplate nicht, wenn der übergeordnete NameScope auch x:Bind verwendet)
- @lhak Vielen Dank für die Einreichung dieses Problems auf GitHub!
Popupfenster werden ausgeblendet, wenn das Fenster (oder die Insel) der obersten Ebene verschoben wird.
StandardUICommand-Seite im WinUI 3-Katalog zeigt nicht alles an
Beim Klicken mit der rechten Maustaste in „TextBox“ stürzt die Anwendung ab.
- @Herdubreid Vielen Dank für die Einreichung dieses Problems auf GitHub!
Kontextmenü, das an der falschen Position für EditableComboBox angezeigt wird
Das Ändern der RichTextBlock-Auswahl mit Toucheingabe bewirkt, dass die Auswahlanzeige weggeht
Microsoft C++-Ausnahme: winrt::hresult_error am Speicherort 0x... bei Verwendung von NavigationView
- @LeftTwixWand Vielen Dank für die Einreichung dieses Problems auf GitHub!
WinUI 3-Fehlermeldung muss neu formuliert werden: "'Windows.metadata' kann nicht aufgelöst werden. Installieren Sie das Windows Software Development Kit. Das Windows SDK ist mit Visual Studio installiert."
Eigenart des VSM-Setters zum Auslösen einer Ausnahme besitzt Rückwärtslogik.
- @HppZ Vielen Dank für das Ausfüllen dieses Problems auf GitHub!
Verschieben des Fokus von WebView2 weg (falls erforderlich), wenn der Browserprozess abstürzt
ProgressBar zeigt den Unterschied zwischen „Angehalten“ und „Fehler“ nicht an
- @j0shuams Vielen Dank für die Einreichung dieses Problems auf GitHub!
PointerReplay läuft ständig
„NavigationView“ verursacht Absturz in UWP, Reunion 0.5 Preview.
- @kalin-todorov Vielen Dank für die Einreichung dieses Problems auf GitHub!
AutoSuggestBox, ComboBox und CommandBarFlyout legen im Popup nicht "ShouldConstrainToRootBounds="false" fest.
WinUI 3 – Project Reunion 0.5 generieren C++-Ausnahmen für eine verwaltete C#-App
- @Noemata Vielen Dank für die Einreichung dieses Problems auf GitHub!
WebView2 - Ursprünglicher Fokus des Tabs verloren
WebView2 stürzt ab, wenn DPI nach Close() geändert wird.
Ändern der Darstellung von AppBarButton mit Flyout auf CommandBar in WinUI3
- @eleanorleffler Vielen Dank für die Einreichung dieses Problems auf GitHub!
Features und Funktionen, die in der Vergangenheit in WinUI 3 Previews eingeführt wurden
Die folgenden Features und Funktionen wurden in früheren WinUI 3-Vorschauversionen eingeführt und werden weiterhin in WinUI 3 – Project Reunion 0.8 Preview unterstützt.
Hinweis
Einige der folgenden Features sind weiterhin Teil von WinUI 3-Vorschauen, sind aber möglicherweise nicht Teil der nächsten unterstützten Version. Diese Features sind als experimentell gekennzeichnet und lösen eine Warnung aus, wenn sie in einer App verwendet wird. APIs, die Teil der Vorabversion von WinUI für UWP 2.6 sind, sind in dieser Version ebenfalls als experimentell gekennzeichnet.
- Möglichkeit zum Erstellen von Desktop-Apps mit WinUI, einschließlich .NET für Win32-Apps
- Unterstützung auf Vorschauebene für das Erstellen von UWP-Apps
- RadialGradientBrush
- TabView-Updates
- Updates für dunkle Designs
- Verbesserungen und Updates für WebView2
- Unterstützung für hohen DPI-Wert
- Unterstützung des Änderns der Größe und Verschiebens von Fenstern
- Aktualisiert für die neuere Version von Edge
- Es ist nicht mehr erforderlich, auf ein WebView2-spezifisches NuGet-Paket zu verweisen.
- SwapChainPanel
- MRT-Kernunterstützung
- Dies macht Apps beim Start schneller und leichter und bietet eine schnellere Ressourcensuche.
- Arm64-Unterstützung
- Ziehen und Ablegen innerhalb und außerhalb von Apps
- RenderTargetBitmap (derzeit nur XAML-Inhalt - kein SwapChainPanel-Inhalt)
- Unterstützung für benutzerdefinierte Cursor
- Hintergrundthread-Eingabe
- Verbesserungen unserer Tools/Entwicklererfahrung:
- Live Visual Tree, Hot Reload, Live Property Explorer und ähnliche Tools
- IntelliSense für WinUI 3
- Für die Open Source-Migration erforderliche Verbesserungen
- Benutzerdefinierte Titelleistenfunktionen: neue Window.ExtendsContentIntoTitleBar - und Window.SetTitleBar-APIs , mit denen Entwickler benutzerdefinierte Titelleisten in Desktop-Apps erstellen können.
- VirtualSurfaceImageSource-Unterstützung
- In-App-Acryl-Oberfläche
- Unterstützung für mehrere Fenster in Desktop-Apps
- Eingabevalidierung
Feedback und Vorschläge bereitstellen
Wir freuen uns über Ihr Feedback im WinUI GitHub-Repository.
Einschränkungen und bekannte Probleme
Die WinUI 3 - Project Reunion 0.8 Preview ist genau das, eine Vorschau. Bitte erwarten Sie Fehler, Einschränkungen und andere Probleme.
Die folgenden Elemente sind einige der bekannten Probleme mit WinUI 3 – Project Reunion 0.8. Wenn Sie ein Problem finden, das unten nicht aufgeführt ist, teilen Sie uns bitte mit, indem Sie zu einem vorhandenen Problem beitragen oder ein neues Problem über das WinUI GitHub-Repository einreichen.
Plattform- und Betriebssystemunterstützung
WinUI 3 – Project Reunion 0.8 Preview ist kompatibel mit PCs mit dem Windows 10 Oktober 2018 Update (Version 1809 – Build 17763) und höher.
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 werden.
- Keine XAML-Designer-Unterstützung.
- Neue C++/CX-Apps werden jedoch nicht unterstützt, ihre vorhandenen Apps funktionieren weiterhin (bitte wechseln Sie so bald wie möglich zu C++/WinRT).
- Entpackte Desktopbereitstellung wird nicht unterstützt.
- Stellen Sie beim Ausführen einer Desktop-App mit F5 sicher, dass Sie das Verpackungsprojekt ausführen. Beim Drücken von F5 im App-Projekt wird eine entpackte App ausgeführt, die WinUI 3 noch nicht unterstützt.
Fehlende Plattformfeatures
Xbox-Support
HoloLens-Unterstützung
Fenster-Popups
- Genauer gesagt, verhält sich die
ShouldConstrainToRootBoundsEigenschaft immer so, als ob sie auftruefestgelegt ist, unabhängig vom Eigenschaftswert.
- Genauer gesagt, verhält sich die
Freihandunterstützung, einschließlich:
Hintergrund-Acryl
MediaElement und MediaPlayerElement
MapControl
SwapChainPanel unterstützt keine Transparenz.
AcrylicBrush und andere Effekte mit einem CompositionBackdropBrush können nicht von einem SwapChainPanel oder WebView2 sampeln.
Global Reveal nutzt Fallbackverhalten, einen einfarbigen Pinsel
XAML-Inseln werden in dieser Version nicht unterstützt.
Die direkte Verwendung von WinUI 3 in einer vorhandenen Nicht-WinUI-Desktop-App hat die folgende Einschränkung: Der derzeit verfügbare Pfad zum Migrieren einer vorhandenen App besteht darin, Ihrer Lösung ein neues WinUI 3-Projekt hinzuzufügen und Ihre Logik nach Bedarf anzupassen oder umzugestalten.
Application.Suspending wird nicht in Desktop-Apps aufgerufen. Weitere Informationen finden Sie in der API-Referenzdokumentation zum Application.Suspending-Ereignis .
Das UISettings.ColorValuesChanged-Ereignis und das AccessibilitySettings.HighContrastChanged-Ereignis werden in Desktop-Apps nicht mehr unterstützt. Dies kann zu Problemen führen, wenn Sie sie verwenden, um Änderungen in Windows-Designs zu erkennen.
Um eine CompositionCapabilities-Instanz abzurufen, würden Sie "CompositionCapabilites.GetForCurrentView()" aufrufen. Die von diesem Aufruf zurückgegebenen Funktionen sind jedoch nicht von der Ansicht abhängig. Um dies zu adressieren und widerzuspiegeln, haben wir die statische GetForCurrentView() in dieser Version gelöscht, sodass Sie jetzt ein CompositionCapabilties-Objekt 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 Standard in Zukunft, CoreWindow, ApplicationView, CoreApplicationViewCoreDispatcher und ihre Abhängigkeiten sind in Desktop-Apps nicht verfügbar. Die Window.Dispatcher-Eigenschaft ist z. B. immer NULL, aber die Window.DispatcherQueue-Eigenschaft kann als Alternative verwendet werden.
Diese APIs funktionieren nur in UWP-Apps. In früheren Vorschauen haben sie auch teilweise in Desktop-Apps gearbeitet, aber seit Vorschau 4 wurden sie vollständig deaktiviert. Diese APIs sind für den UWP-Fall konzipiert, in dem nur ein Fenster pro Thread vorhanden ist, und eines der Features von WinUI 3 besteht darin, mehrere in Zukunft zu aktivieren.
Es gibt APIs, die intern von der Existenz dieser APIs abhängen, die daher in einer Desktop-App nicht unterstützt werden. Diese APIs weisen in der Regel eine statische GetForCurrentView Methode auf. Beispiel : UIViewSettings.GetForCurrentView.
Weitere Informationen zu betroffenen APIs sowie Problemumgehungen und Ersetzungen für diese APIs finden Sie unter Support für WinRT-APIs in Desktop-Apps.
Bekannte Probleme
Möglicherweise wird aufgrund von nicht übereinstimmenden Versionen des .NET SDK und der winrt.runtime.dll ein Buildfehler angezeigt. Als Problemumgehung können Sie Folgendes ausprobieren:
Legen Sie das .NET SDK explizit auf die richtige Version fest. Um die richtige Version für Ihre App zu ermitteln, suchen Sie das
<TargetFramework>Tag in der Projektdatei. Fügen Sie mithilfe der Windows SDK-Buildnummer, die Ihre App im<TargetFramework>-Tag anvisiert (z. B. 18362 oder 19041), das folgende Element zu Ihrer Projektdatei hinzu, und speichern Sie anschließend Ihr Projekt.<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.
Wenn Sie Visual Studio 2019 16.10 Preview 2 verwenden, kann die Live Visual Tree zu einem Absturz führen. Um dies zu vermeiden, aktualisieren Sie auf die neueste Visual Studio 2019 16.10 Preview.
Fenstertitelleistenschaltflächen können falsch platziert sein, wenn "SetTitleBar" nicht festgelegt oder null ist.
WinUI 3 Gallery-Momentaufnahme
Die Branches winui3 und winui3preview sind nicht mehr verfügbar, und das Repository der XAML Controls Gallery wurde in microsoft/WinUI-Gallery umbenannt. Die für die „Project Reunion 0.8 Preview“ aktualisierte Beispiel-App wird in einem historischen Commit beibehalten. Diese Momentaufnahme verwendet Project Reunion 0.8.0-preview und spiegelt nicht den aktuellen WinUI 3-Katalog wider.
Um den historischen Snapshot herunterzuladen, klonen Sie das Repository und checken Sie den erhaltenen Commit aus:
git clone https://github.com/microsoft/WinUI-Gallery.git
cd WinUI-Gallery
git fetch origin refs/pull/698/head
git checkout 77d9e0a68bb67edb2b79fd1535fb18cf438b4265
Siehe auch
Windows developer