Partager via


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 :

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)

  • 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

  • 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é

  • 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

  • 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

  • PointerReplay constamment en cours d’exécution

  • NavigationView provoque un plantage dans Project Reunion 0.5 Preview dans la plateforme UWP

  • 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#

  • 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

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 sur true, quelle que soit la valeur de 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, CoreApplicationViewCoreDispatcher 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

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.

Application de la galerie de contrôles WinUI 3
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