Vue d’ensemble et notes de publication : WinUI 3 - Project Reunion 0.8 Preview (mai 2021)
WinUI 3 constitue un framework d’expérience utilisateur natif pour la création d'applications Windows modernes. Il est fourni indépendamment du système d’exploitation Windows dans le cadre de Project Reunion (désormais appelé SDK d’application Windows). La version 0.8 Preview fournit des modèles WinUI 3 dans Visual Studio pour vous aider à créer des applications avec une interface utilisateur basée sur WinUI 3.
WinUI 3 - Project Reunion 0.8 Preview est une préversion de WinUI 3 qui comprend des correctifs de bogues, des améliorations générales et des fonctionnalités expérimentales, dont certaines seront stabilisées pour la version stable du SDK d’application Windows 0.8 en juin 2021.
Important
Cette préversion est destinée à une évaluation anticipée et à la collecte de commentaires de la communauté des développeurs. Il ne doit PAS être utilisé pour les applications de production.
Si vous envisagez de livrer une application de production à l’aide de Project Reunion et de WinUI 3, consultez Vue d’ensemble et notes de publication : WinUI 3 - Project Reunion 0.5.
Utilisez le dépôt GitHub WinUI pour fournir des commentaires et journaliser des suggestions et des problèmes.
Notes
Project Reunion est le nom de code précédent du kit Windows App SDK. Cette documentation utilise toujours Project Reunion quand elle fait référence aux versions antérieures qui utilisaient ce nom de code.
Installer WinUI 3 - Project Reunion 0.8 Preview
Cette version de WinUI 3 est disponible dans le cadre de Project Reunion 0.8 Preview. Pour l'installation, consultez :
Installer des outils pour la préversion et les canaux expérimentaux du SDK d’application Windows
Étant donné que WinUI est fourni avec Project Reunion, commencez par télécharger l’extension Project Reunion Visual Studio (VSIX), qui comprend un ensemble d’outils et de composants de développement. Pour plus d’informations sur le package Project Reunion, consultez Déployer des applications qui utilisent le SDK d’application Windows. Le SDK d’application Windows VSIX fournit des modèles WinUI 3 dans Visual Studio que vous pouvez utiliser pour créer votre application WinUI 3.
Notes
Pour profiter des contrôles et fonctionnalités WinUI 3, vous pouvez cloner et générer la galerie de contrôles WinUI 3 à partir de GitHub, ou la télécharger à partir de Microsoft Store.
Après avoir configuré votre environnement de développement, consultez Modèles WinUI 3 dans Visual Studio pour vous familiariser avec les modèles de projet et d’élément Visual Studio disponibles.
Pour plus d'informations sur la création d'une application WinUI 3, consultez les articles suivants :
- Créer votre premier projet WinUI 3
- Créer une application C# .NET avec l’interopérabilité WinUI 3 et Win32
En plus des limitations et des problèmes connus, la génération d’une application à l’aide des projets WinUI est semblable à la génération d’une application UWP avec XAML et WinUI 2. Par conséquent, la majeure partie de la documentation d’aide pour les applications UWP et les espaces de noms WinRT Windows.UI figurant dans le SDK Windows est applicable.
La documentation de référence sur l’API WinUI 3 est disponible ici : Informations de référence sur l’API WinUI 3
Vue web 2
Pour utiliser WebView2 avec cette version de WinUI 3, téléchargez le programme d'installation Evergreen Bootstrapper ou Evergreen Standalone à partir de cette page si vous n'avez pas encore installé le runtime WebView2.
Windows Community Toolkit
Si vous utilisez le kit de ressources Communauté Windows, téléchargez la dernière version.
Support Visual Studio
Pour tirer parti des dernières fonctionnalités des outils ajoutées à WinUI 3, comme le rechargement à chaud, l’arborescence d’éléments visuels en direct et l’Explorateur de propriétés en direct, vous devez utiliser une préversion de Visual Studio 2019 16.10. Notez que les versions préliminaires de Visual Studio sont des produits en préversion, donc vous risquez de rencontrer des bogues et des limitations lors de l’utilisation des préversions de Visual Studio pour générer des applications WinUI 3.
Le tableau ci-dessous présente la compatibilité des différentes versions de Visual Studio 2019 avec WinUI 3 - Project Reunion 0.5.
Version de Visual Studio | WinUI 3 - Project Reunion 0.5 |
---|---|
16.8 | Non |
16,9 | Oui, mais sans Rechargement chaud, Arborescence d'éléments visuels en direct ou Explorateur de propriétés en direct |
Préversions 16.10 | Oui, avec tous les outils WinUI 3 (en préversion) |
Mise à jour de votre application WinUI 3 existante
Si vous avez créé une application avec une préversion antérieure ou une version stable de WinUI 3, vous pouvez mettre à jour le projet pour utiliser WinUI 3 - Project Reunion 0.8 Preview. Pour obtenir des instructions, consultez Mettre à jour des projets existants avec la dernière version de Project Reunion.
Principales modifications introduites dans cette version
- Le contrôle Pivot peut désormais être utilisé dans cette version.
- La plupart des correctifs de bogues critiques issus des versions de maintenance de Project Reunion v0.5.5, v0.5.6 et v0.5.7 sont également inclus dans cette version. Pour obtenir les correctifs de maintenance qui ne figurent pas dans cette préversion, consultez Problèmes connus.
Liste des bogues corrigés dans WinUI 3 - Project Reunion 0.8 Preview
x:Bind ne fonctionne pas dans un MenuFlyoutItem personnalisé (plus généralement, x:Bind dans ControlTemplate ne fonctionne pas si le namescope parent utilise également x:Bind)
- Merci à @lhak d’avoir signalé ce problème sur GitHub !
Masquer les fenêtres contextuelles quand la fenêtre de niveau supérieur (ou îlot) se déplace
La page StandardUICommand dans la galerie de contrôles WinUI 3 n’affiche pas tout
Cliquer avec le bouton droit dans TextBox fait planter l’application
- Merci à @Herdubreid d’avoir signalé ce problème sur GitHub !
Menu contextuel affiché à l’emplacement incorrect pour EditableComboBox
Changer la sélection de RichTextBlock avec une interaction tactile fait disparaître l’indicateur de sélection
Exception Microsoft C++ : winrt::hresult_error à l’emplacement de mémoire 0x... quant NavigationView est utilisé
- Merci à @LeftTwixWand d’avoir signalé ce problème sur GitHub !
Le message d’erreur WinUI 3 doit être reformulé : « Impossible de résoudre ’Windows.metadata’. Installez le Kit de développement logiciel (SDK) Windows. Le Kit de développement logiciel (SDK) Windows est installé avec Visual Studio. »
La particularité de la méthode setter VSM déclenchant une exception a une logique descendante
- Merci de @HppZ remplir ce problème sur GitHub !
Retirer le focus de WebView2 (si nécessaire) quand le processus du navigateur plante
La barre de progression ne montre pas la différence entre l’option Mise en pause et Erreur
- Merci à @j0shuams d’avoir signalé ce problème sur GitHub !
PointerReplay constamment en cours d’exécution
NavigationView provoque un plantage dans Project Reunion 0.5 Preview dans la plateforme UWP
- Merci à @kalin-todorov d’avoir signalé ce problème sur GitHub !
AutoSuggestBox, ComboBox et CommandBarFlyout ne configurent pas ShouldConstrainToRootBounds="false" dans leur fenêtre contextuelle
Génération d’exceptions C++ par WinUI 3 - Project Reunion 0.5 pour une application gérée C#
- Merci à @Noemata d’avoir signalé ce problème sur GitHub !
Perte du focus de tabulation initial sur WebView2
WebView2 plante quand la valeur DPI change après Close()
Changement de l’aspect d’AppBarButton avec Flyout dans CommandBar dans WinUI3
- Merci à @eleanorleffler d’avoir signalé ce problème sur GitHub !
Fonctionnalités et fonctions introduites dans des préversions passées de WinUI 3
Les fonctionnalités et fonctions suivantes ont été introduites dans des préversions passées de WinUI 3 et continuent d’être prises en charge dans WinUI 3 - Project Reunion 0.8 Preview.
Notes
Certaines des fonctionnalités suivantes continueront à faire partie des préversions de WinUI 3, mais peuvent ne pas faire partie de la prochaine version prise en charge. Ces fonctionnalités sont marquées comme expérimentales et génèrent un avertissement quand elles sont utilisées dans une application. Les API qui font partie de la préversion de WinUI 2.6 sont également marquées comme expérimentales dans cette version.
- Possibilité de créer des applications de bureau avec WinUI, y compris .NET pour les applications Win32
- Prise en charge des niveaux de préversion pour la génération d’applications UWP
- RadialGradientBrush
- Mises à jour de TabView
- Mises à jour de thèmes sombres
- Améliorations et mises à jour de WebView2
- Prise en charge des résolutions élevées
- Prise en charge du redimensionnement et du déplacement de fenêtre
- Mise à jour pour cibler une version plus récente de Microsoft Edge
- Vous n’avez plus besoin de référencer un package NuGet propre à WebView2
- SwapChainPanel
- Prise en charge de MRT Core
- Ceci rend les applications plus rapides et plus légères au démarrage, et permet une recherche plus rapide des ressources.
- Prise en charge d’Arm64
- Glisser-déplacer à l’intérieur et à l’extérieur des applications
- RenderTargetBitmap (actuellement seulement le contenu XAML - pas le contenu SwapChainPanel)
- Prise en charge des curseurs personnalisés
- Entrée hors thread
- Améliorations apportées à notre expérience des outils/du développement :
- Arborescence d’éléments visuels dynamique, rechargement à chaud, Explorateur de propriétés dynamique et outils similaires
- Intellisense pour WinUI 3
- Améliorations requises pour la migration open source
- Fonctionnalités de barre de titre personnalisées : nouvelles API Window.ExtendsContentIntoTitleBar et Window.SetTitleBar qui permettent aux développeurs de créer des barres de titre personnalisées dans les applications de bureau.
- Prise en charge de VirtualSurfaceImageSource
- Acrylique dans l’application
- Prise en charge de plusieurs fenêtres dans les applications de bureau
- Validation d’entrée
Fournir des commentaires et des suggestions
Nous serions heureux de recevoir vos commentaires dans le dépôt GitHub WinUI.
Limitations et problèmes connus
WinUI 3 - Project Reunion 0.8 Preview n’est qu’une préversion. Attendez-vous à des bogues, des limitations et d’autres problèmes.
Voici quelques exemples de problèmes connus associés à WinUI 3 - Project Reunion 0.8. Si vous trouvez un problème qui ne figure pas dans la liste ci-dessous, faites-le nous savoir en contribuant à un problème existant ou en consignant un nouveau problème via le dépôt GitHub WinUI.
Prise en charge de plateforme et de système d’exploitation
WinUI 3 - Project Reunion 0.8 Preview est compatible avec les PC qui exécutent la mise à jour d’octobre 2018 de Windows 10 (version 1809 - build 17763) et ultérieure.
Outils de développeur
- Seules les applications C# et C++/WinRT sont prises en charge.
- Les applications de bureau prennent en charge .NET 6 (ou ultérieure) et C# 9, et elles doivent être empaquetées dans une application MSIX.
- Aucune prise en charge du Concepteur XAML.
- Les nouvelles applications C++/CX ne sont pas prises en charge. Toutefois, vos applications existantes continueront à fonctionner (veuillez passer à C++/WinRT dès que possible).
- Le déploiement d’appareils de bureau sans package n’est pas pris en charge.
- Lors de l’exécution d’une application de bureau avec F5, vérifiez que vous exécutez le projet d’empaquetage. Si vous utilisez F5 sur le projet d’application, vous allez exécuter une application non empaquetée, que WinUI 3 ne prend pas encore en charge.
Fonctionnalités de plateforme manquantes
Support Xbox
Support HoloLens
Fenêtres contextuelles
- Plus spécifiquement, la propriété
ShouldConstrainToRootBounds
agit toujours comme si elle était définie surtrue
, quelle que soit la valeur de la propriété.
- Plus spécifiquement, la propriété
Prise en charge du mode d'entrée manuscrite, y compris :
Acrylique en arrière-plan
MediaElement et MediaPlayerElement
MapControl
SwapChainPanel ne prend pas en charge la transparence
AcrylicBrush et les autres effets utilisant CompositionBackdropBrush ne peuvent pas créer d’échantillon à partir de SwapChainPanel ou WebView2.
Global Reveal utilise le comportement de secours, un pinceau plein
XAML Islands n’est pas pris en charge dans cette version
La limitation suivante s'applique à l'utilisation de WinUI 3 directement dans une application de bureau non WinUI existante : la méthode actuellement disponible pour la migration d'une application existante consiste à ajouter un nouveau projet WinUI 3 à votre solution, et si nécessaire, à ajuster ou refactoriser votre logique.
Application.Suspending n'est pas appelé dans les applications de bureau. Pour plus d'informations, consultez la documentation de référence de l'Événement Application.Suspending.
L’événement UISettings.ColorValuesChanged et l’événement AccessibilitySettings.HighContrastChanged ne sont plus pris en charge dans les applications de bureau. Cela peut entraîner des problèmes si vous l’utilisez pour détecter les changements apportés aux thèmes Windows.
Avant, pour obtenir une instance CompositionCapabilities, vous appeliez CompositionCapabilites.GetForCurrentView(). Toutefois, les fonctionnalités retournées après cet appel n’étaient pas dépendantes de la vue. Pour traiter et refléter cela, nous avons supprimé le GetForCurrentView() statique de cette version, donc maintenant vous pouvez créer un objet CompositionCapabilties directement.
CoreWindow, ApplicationView, CoreApplicationView, CoreDispatcher et leurs dépendances ne sont pas pris en charge dans les applications de bureau (voir ci-dessous)
CoreWindow, ApplicationView, CoreApplicationView et CoreDispatcher dans les applications de bureau
Nouveauté à partir de WinUI 3 Preview 4 et version standard ; CoreWindow, ApplicationView, CoreApplicationView CoreDispatcher et leurs dépendances ne sont pas disponibles dans les applications de bureau. Par exemple, la propriété Window.Dispatcher comporte toujours la valeur null, mais la propriété Window.DispatcherQueue peut être utilisée comme alternative.
Ces API fonctionnent uniquement dans les applications UWP. Dans les préversions précédentes, elles fonctionnaient partiellement dans les applications de bureau, mais depuis Preview 4, elles ont été entièrement désactivées. Ces API sont conçues pour les cas UWP où il n'y a qu'une seule fenêtre par thread, et l'une des caractéristiques de WinUI 3 est d'en accepter plusieurs à l'avenir.
Certaines API dépendent en interne de l’existence de ces API et ne sont donc pas prises en charge dans une application de bureau. Ces API ont généralement une méthode GetForCurrentView
statique. Par exemple, UIViewSettings.GetForCurrentView.
Pour plus d’informations sur les API affectées, ainsi que sur les solutions de contournement et les remplacements pour ces API, consultez API Windows Runtime non prises en charge dans les applications de bureau.
Problèmes connus
Vous pouvez recevoir une erreur de build en raison de versions incompatibles du kit SDK .NET et de winrt.runtime.dll. Pour la résoudre, vous pouvez essayer les opérations suivantes :
Définissez explicitement votre kit SDK .NET avec la bonne version. Pour déterminer la bonne version de votre application, recherchez l’étiquette
<TargetFramework>
dans votre fichier projet. À l’aide du numéro de build SDK Windows que votre application cible dans l’étiquette<TargetFramework>
(par exemple, 18362 ou 19041), ajoutez l’élément suivant à votre fichier projet, puis enregistrez votre projet :<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>
Notez que cette solution est obligatoire pour le kit SDK .NET 5.0.203 et antérieur, mais ne l’est pas pour le kit .NET 5.0.204 ou 5.0.300.
Lors de l’utilisation de Visual Studio 2019 16.10 Preview 2, l’arborescence d’éléments visuels en direct peut provoquer un plantage. Pour éviter cela, effectuez une mise à jour vers la dernière version de Visual Studio 2019 16.10 Preview.
Les boutons de légende d’une fenêtre peuvent être mal placés quand SetTitleBar n’est pas défini ou a la valeur null
Galerie de contrôles WinUI 3
Consultez la galerie de contrôles WinUI 3 (précédemment appelée Galerie de contrôles XAML - version WinUI 3) pour accéder à un exemple d’application comprenant l’ensemble des contrôles et fonctionnalités qui font partie de WinUI 3 - Project Reunion 0.8 Preview.
Exemple d'application de la galerie de contrôles WinUI 3
L’application de la galerie de contrôles WinUI 3 est disponible par le biais de Microsoft Store.
Vous pouvez également télécharger l’exemple en clonant le dépôt GitHub. Pour ce faire, clonez la branche winui3 à l'aide de la commande suivante :
Notes
Ce dépôt GitHub comprend également une branche winui3preview qui fournit une version de la galerie de contrôles WinUI 3 qui utilise WinUI 3 - Project Reunion 0.8 Preview.
git clone --single-branch --branch winui3 https://github.com/microsoft/Xaml-Controls-Gallery.git
Après le clonage, veillez à basculer vers la branche winui3 dans votre environnement Git local :
git checkout winui3
Voir aussi
Windows developer