Notes de publication du Kit de développement logiciel (SDK) d’application Windows 1.4

Vous pouvez choisir entre les canaux Stable, Préversion et Expérimental en fonction de vos besoins de développement , des builds de production fiables à l’accès anticipé aux fonctionnalités à venir. En savoir plus sur les canaux de mise en production.

Pour le runtime mis à jour et MSIX, consultez Téléchargements pour le Kit de développement logiciel (SDK) d’application Windows.

Version 1.4.7 (1.4.240802001)

Corrections de bogues
  • Correction d’un problème où ItemsRepeater ne générerait pas suffisamment d’éléments s’il se trouvait dans une ShouldConstrainToRootBounds="false" fenêtre contextuelle qui était plus grande ou plus large que la fenêtre principale.
  • Correction d’un incident potentiel lors de l’arrêt si une mise à jour d’étiquette AnnotatedScrollBar était en attente.

Version 1.4.6 (1.4.240512000)

Corrections de bogues
  • Correction d'un plantage potentiel lors du traitement des données.
  • Correction d’un problème où une opération de glisser-déposer démarrée à partir d’une autre application pouvait ne pas permettre les opérations de dépôt correctes Copier/Déplacer/Lier.
  • Correction des informations du serveur source de WinUI pour le débogage, afin qu'elles pointent correctement vers le dépôt GitHub microsoft-ui-xaml.
  • Résolution d'un problème avec le correctif pour le problème GitHub #8857 afin de fusionner correctement une bibliothèque resources.pri dans l'resources.pri de l'application.

Version 1.4.5 (1.4.240211001)

Corrections de bogues
  • Résolution d'un problème qui pouvait entraîner le blocage des applications lorsque l'on cliquait tout en faisant défiler avec la roulette de la souris. Pour plus d’informations, veuillez consulter la section GitHub #9233.
  • Résolution d’un problème lié aux ressources en double lors du référencement d’une chaîne de packages NuGet. Pour plus d’informations, veuillez consulter la section GitHub #8857.
  • Résolution de plusieurs BreadcrumbBar problèmes, notamment une fuite de mémoire, un plantage lorsque le menu avec les points de suspension était vide, et le fait que ce menu n'était pas correctement délimité à l'intérieur de la fenêtre.
  • Correction d’un crash potentiel lors de la fermeture lors de la libération de ressources graphiques.

Version 1.4.4 (1.4.231219000)

Corrections de bogues
  • Correction d’un problème de sécurité de diagnostic WinUI 3.
  • Correction d’un problème d’entrée où la zone de mot de passe n’affichait pas le clavier visuel lors de l’activation via l’interaction tactile. Pour plus d’informations, consultez le problème GitHub n°8946.
  • Correction d’un problème qui entraînait l’augmentation inattendue de la taille de fichier Microsoft.UI.Xaml.Controls.dll.
  • Correction d’un problème CommandBarFlyout qui pouvait provoquer des blocages lors du réglage de la concentration.
  • Mise à jour du support du SDK d'applications Windows pour la gestion des ressources spécifiques à RID dans .NET 8.
  • Correction d’un problème entraînant la position ou l’étirement incorrect de certaines chaînes d’échange.

Version 1.4.3 (1.4.231115000)

Corrections de bogues
  • Correction d’un problème où un menu pouvait apparaître sans arrière-plan pendant une courte période.
  • Correction d’un incident qui peut se produire dans des scénarios multi-moniteurs spécifiques.
  • Correction d’un problème où un menu contextuel pouvait apparaître hors écran.
  • Correction d’un problème lié aux styles de fenêtre et à l’optimisation du comportement. Pour plus d’informations, consultez le problème GitHub n°8996.
  • Correction d’un problème avec les Islands où le focus pouvait être saisi de manière inattendue à partir d’un autre contrôle.
  • Correction d’un problème lié à l’ordre de tabulation sur NavigationView.
  • Correction d’un problème de rendu où une barre blanche peut être visible en haut de la barre de titre. Pour plus d’informations, consultez le problème GitHub n°8947.
  • Divers correctifs de performances.

Version 1.4.2 (1.4.231008000)

Corrections de bogues
  • Correction d’un problème de blocage dans explorer.exe provoqué par une allocation excessive de mémoire et d’objets.
  • Correction d'un problème d'interaction avec la barre de titre qui empêchait le bouton Précédent de fonctionner correctement.
  • Correction d’un problème qui provoquait la génération d’un avertissement quant un fichier source était inclus plusieurs fois.
  • Correction d’un problème affectant les performances du menu contextuel.
  • Correction d’un problème de raccourci .lnk selon lequel le fichier .exe cible pointait toujours vers le même emplacement pour les packages dans le dossier WindowsApps.
  • Correction d’un problème DWriteCore affectant le rendu approprié du texte Indic dans certaines polices.
  • Correction d’un problème dans un affichage Liste qui empêchait la navigation au clavier appropriée vers et depuis les éléments sélectionnés imbriqués avec Tab/Maj + Tab.
  • Correction d’un problème qui rompait le défilement des éléments d’une zone de liste déroulante par fonction tactile après le second développement de la zone de liste déroulante. Pour plus d’informations, consultez le problème GitHub n° 8831.
  • Correction d’un problème où les packages du Kit de développement logiciel (SDK) d’application Windows n’incluaient pas les ressources localisées de WinUI pour certaines langues.
  • Correction d’une incohérence entre la façon dont l’Explorateur de fichiers et XAML affichent la langue préférée d’un utilisateur.
  • Correction d’un défaut de conception dans l’Explorateur de fichiers provoquant l’affichage d’une ligne mince sous l’onglet actif.
  • Correction d’un problème selon lequel certains accélérateurs clavier fournis par l’infrastructure n’étaient pas correctement localisés. Pour plus d’informations, consultez le problème GitHub n°2023.
  • Correction d’un problème qui provoquait le défilement répétitif des contrôles RepeatButton quand ils étaient activés.
  • Correction du fichier .exe du programme d'installation du Kit de développement d’applications Windows SDK pour inclure les informations correctes sur la version des ressources.

Version 1.4.1 (1.4.230913002)

Corrections de bogues
  • Correction des problèmes de performances pour améliorer le délai d’affichage de la première image.
  • Correction d’un problème où les menus ne respectaient pas RequestedTheme. Par exemple, ce problème pouvait entraîner du texte blanc sur un arrière-plan blanc. Pour plus d’informations, consultez le problème GitHub 8756.
  • Correction d’un problème qui provoquait aux arrière-plans acryliques de devenir entièrement transparents dans certains menus.
  • Correction d’un problème où XAML obligeait parfois Windows à repeindre inutilement le papier peint du bureau.
  • Correction de la prise en charge de TabNavigation = Local et TabNavigation = Cycle pour ListView et GridView, qui permet désormais de naviguer entre les en-têtes et les éléments avec la touche Tabulation en plus des touches de direction.
  • Correction de certaines exceptions bruyantes quand une info-bulle était ignorée. Pour plus d’informations, consultez le problème GitHub 8699.

Version 1.4

Fusion de la barre de titres personnalisée et de la barre de titres AppWindow

La barre de titre personnalisée WinUI 3 utilise l’implémentation de la barre de titre AppWindow, ainsi que les API NonClientInputPointerSource , sous le capot du SDK d’application Windows 1.4. Par conséquent, les deux implémentations de barre de titre se comportent désormais de la même façon, avec les mêmes fonctionnalités et limitations. Cela est entièrement rétrocompatible dans tous les cas pris en charge : toute application avec une barre de titre personnalisée se comporte comme avant. Toutefois, les développeurs WinUI 3 non familiarisés avec les barres de titre personnalisées peuvent maintenant plus facilement les comprendre et les utiliser en tirant parti de ces nouvelles fonctionnalités :

  • Un meilleur scénario par défaut où le développeur ne définit pas d’élément de barre de titre spécifiquement (en remplaçant la barre de titre de secours de WinUI pour UWP)
  • Régions de glissement distinctes dans la barre de titre, ce qui vous permet de créer plusieurs régions de glissement et de placer des contrôles cliquables n’importe où dans la zone non cliente (zone de barre de titre)
  • Régions de glissement à l’échelle de l’application qui peuvent être placées n’importe où dans l’application ou permettre de faire glisser l’application entière
  • Amélioration de la prise en charge des thèmes qui remplace les thèmes basés sur les ressources
    • Comme les régions de glissement sont transparentes, elles suivent le thème de l’application dans tous les cas
  • Plus de personnalisation : possibilité de masquer les boutons réduire, agrandir et fermer, de placer les icônes système dans la barre de titre, ou d’avoir des régions différentes en guise de boutons légende qui reçoivent des réponses NCHITTEST
  • Plus de liberté pour les développeurs leur permet de combiner et d'associer des API de barre de titre AppWindow, par exemple en utilisant principalement les API WinUI 3 de haut niveau pour la plupart des scénarios, tout en intégrant des API AppWindow pour un contrôle de niveau inférieur.
Mises à jour des widgets

Trois nouvelles interfaces ont été ajoutées pour que les fournisseurs de widgets implémentent : IWidgetProvider2, IWidgetProviderAnalyticset IWidgetProviderErrors. IWidgetProvider2 permet aux fournisseurs de répondre à l'action Personnaliser appelée par l’utilisateur, qui est identique à ce qui est disponible pour les widgets de première partie. Les interfaces IWidgetProviderAnalytics et IWidgetProviderErrors sont utilisées par les fournisseurs pour collecter des données de télémétrie pour leurs widgets ; les événements analytiques et de panne concernant les widgets sont communiqués aux fournisseurs de widgets respectifs. Les classes WidgetCustomizationRequestedArgs, WidgetAnalyticsInfoReportedArgs et WidgetErrorInfoReportedArgs sont utilisées pour communiquer des informations pertinentes afin de soutenir de nouvelles fonctionnalités.

XAML Islands n’est plus expérimental

Xaml Islands et la plateforme ContentIslands sous-jacente ne sont plus expérimentaux.

  • Actuellement, XAML Islands n’est testé que pour une utilisation dans les applications C++. Cette version n’inclut aucun élément wrapper pratique à utiliser dans WPF ou WinForms.
  • DesktopWindowXamlSource et les types associés ont été ajoutés dans l’espace de noms Microsoft.UI.Xaml.Hosting pour XAML Islands. XamlRoot.ContentIslandEnvironment a été ajouté pour faciliter l'accès aux informations sous-jacentes de l'île concernant un élément.
  • De nombreux nouveaux types ont été introduits dans l’espace de noms Microsoft.UI.Content et l’espace de noms Microsoft.UI.Input comme prise en charge sous-jacente des îles XAML ou pour l’utilisation de cette fonctionnalité ContentIslands sans XAML.
  • Un nouvel élément DragDropManager (ainsi que des types associés) a été ajouté dans l’espace de noms Microsoft.UI.Input.DragDrop pour les scénarios Island.
ItemsView

Nous introduisons un nouveau contrôle de liste appelé ItemsView et une classe concrète correspondante ItemContainer. ItemContainer est un conteneur léger avec des états de sélection et des visuels intégrés, qui peut facilement encapsuler le contenu souhaité et être utilisé avec ItemsView dans un scénario de contrôle de collection.

  • Le nouveau ItemsView contrôle affiche une collection de données. ItemsView est similaire aux contrôles ListView et GridView, mais est construit à l’aide des composants ItemsRepeater, ScrollView, ItemContainer et ItemCollectionTransitionProvider. Il offre la possibilité unique de se connecter à des implémentations personnalisées Layout ou ItemCollectionTransitionProvider. Un autre avantage clé est la possibilité de changer la disposition à la volée tout en préservant la sélection des éléments. Le contrôle interne ScrollView offre également des fonctionnalités qui ne sont pas disponibles dans le contrôle ListView/GridViewScrollViewer, comme la possibilité de contrôler l’animation lors des défilements programmatiques.
    • Une nouvelle ItemTransitionProvider propriété sur ItemsRepeater (et le nouveau ItemsView contrôle) vous permet de spécifier un ItemCollectionTransitionProvider objet pour contrôler les animations de transition sur ce contrôle. ** Une méthode CreateDefaultItemTransitionProvider a également été ajoutée à Layout, permettant à un objet de disposition de fournir une transition de secours pour l’accompagner si vous n'en spécifiez pas explicitement une sur le contrôle ItemsView.
    • Nouvelle IndexBasedLayoutOrientation propriété sur Layout où l'orientation de la disposition des éléments, le cas échéant, est basée sur leur index dans la collection source. La valeur par défaut est IndexBasedLayoutOrientation.None. Les dispositions personnalisées définissent cette propriété en appelant la nouvelle méthode (protégée). SetIndexBasedLayoutOrientation
    • Une nouvelle VisibleRect propriété sur VirtualizingLayoutContext récupère le rectangle de la zone de visualisation visible dans l'FrameworkElement associé au Layout. La méthode virtuelle VirtualizingLayoutContext.VisibleRectCore protégée peut être substituée pour fournir la valeur qui sera retournée à partir de la VisibleRect propriété.
  • La nouvelle LinedFlowLayout classe est généralement utilisée pour mettre en place les éléments du ItemsView contrôle de collection. Il est particulièrement utile pour afficher une collection d’images. Il le fait en les plaçant de gauche à droite, et de haut en bas, en lignes de hauteur égale. Les images remplissent une ligne horizontale, puis s’encapsulent à une ligne suivante. Les images peuvent être rognées à gauche et à droite pour s’adapter à une ligne. Elles peuvent également être développées horizontalement et rognées en haut et en bas pour remplir une ligne lorsque le mode étirement est utilisé.
Nouvelles fonctionnalités de l’ensemble du Kit de développement logiciel (SDK) d’application Windows
  • Nouvelle ThemeSettings classe qui permet aux applications WinRT win32 de détecter quand le paramètre Contraste élevé du système a changé, similaire à la classe AccessibilitySettings de UWP. Pour plus d’informations, consultez la spécification de l’API ThemeSettings sur GitHub.
  • AccessKeyManager.EnterDisplayMode est une nouvelle méthode permettant d’afficher les clés d’accès pour l’élément prioritaire actuel d’une racine fournie. Les touches d’accès sont en « mode d’affichage » lorsque vous affichez un conseil de touche pour appeler une commande, par exemple en appuyant sur la touche Alt dans Paint pour afficher les touches qui correspondent aux contrôles. Cette méthode permet d’entrer par programmation le mode d’affichage.
  • Application.ResourceManagerRequested fournit un mécanisme permettant de fournir un autre IResourceManager moyen de résoudre les URI de ressources pour les scénarios lorsque la valeur par défaut ResourceManager ne fonctionnera pas. Pour plus d’informations, consultez la spécification de l’API Application.ResourceManagerRequested sur GitHub.
  • La version du Kit de développement logiciel (SDK) WebView2 a été mise à jour de 1661.34 à 1823.32.
  • Popup/FlyoutBase.IsConstrainedToRootBounds = false est désormais pris en charge, ce qui permet à une popup/flyout de s'étendre au-delà des limites de la fenêtre parente. Une SystemBackdrop propriété a été ajoutée à ces types pour prendre en charge l’acrylique dans ces fenêtres contextuelles non contraintes. Les menus par défaut utilisent cette option pour avoir l’acrylique.
  • Closed, FrameworkClosedet IsClosed ont été ajoutés à DesktopAcrylicController et MicaController pour améliorer la gestion pendant l’arrêt de l’objet/thread.
  • DesktopAcrylicController.Kind peut maintenant être défini pour choisir entre certaines apparences acryliques standard.
  • DispatcherQueue dispose de nouveaux événements et outils pour faciliter un arrêt mieux organisé et pour les applications utilisant Islands d'exécuter facilement une boucle d’événements standard et prise en charge.
  • InputNonClientPointerSource dans l’espace de noms Microsoft.UI.Input peut être utilisé pour les scénarios de barre de titres personnalisés pour définir des régions de zone non cliente. Le code peut s’inscrire à des événements comme les survols et les clics sur ces régions.
  • AppWindow a quelques nouveaux outils pour obtenir et pour s'associer à un DispatcherQueue.
  • Le nouvel événement TreeView.SelectionChanged permet aux développeurs de réagir lorsque l'utilisateur ou le code source modifie la sélection des nœuds dans le composant TreeView.
  • Le nouveau ScrollView contrôle offre une nouvelle alternative à ScrollViewer. Ce nouveau contrôle est hautement aligné sur le comportement et l’API avec le contrôle existant ScrollViewer , mais est basé sur InteractionTracker, a de nouvelles fonctionnalités telles que les modifications de vue pilotée par l’animation et est également conçue pour garantir une fonctionnalité complète de ItemsRepeater. Voir Un ScrollViewer plus flexible · Problème #108 · microsoft/microsoft-ui-xaml (github.com) pour plus d’informations. Différents nouveaux types, y compris ScrollPresenter, font partie du modèle global ScrollView .
  • Le nouveau AnnotatedScrollBar contrôle étend les fonctionnalités d’une barre de défilement régulière en fournissant un moyen simple de parcourir une grande collection d’éléments. Cela est réalisé par le biais d’un rail cliquable avec des étiquettes qui agissent en tant que marqueurs. Il permet également une compréhension plus détaillée du contenu défilant en affichant une info-bulle lorsque l'on survole le rail cliquable.
Problèmes connus
Corrections de bogues
  • Correction d’un problème où l’appel de l’API Microsoft.Windows.AppLifecycle.AppInstance.Restart("") entraînait un blocage des applications non empaquetées. Pour plus d’informations, consultez le problème GitHub 2792.
  • Correction d’un problème de blocage du programme d’installation introduit dans la version 1.4-experimental1. Pour plus d’informations, consultez le problème GitHub 3760.
  • Correction d’un problème où le style barré du texte n’était pas correctement supprimé dans un TextBlock. Pour plus d’informations, consultez le problème GitHub 1093.
  • Correction d’un problème à l’origine d’une navigation Majuscule + Tab incorrecte dans un panneau avec TabFocusNavigation défini sur « Une fois ». Pour plus d’informations, consultez le problème GitHub #1363.
  • Correction d’un problème dans C++/WinRT qui empêchait {x:Bind} de fonctionner correctement avec une propriété d’un contrôle XAML nommé. Pour plus d’informations, consultez le problème GitHub 2721.
  • Correction d’un problème AccessViolation dans l'environnement d'exécution des applications de bureau WinUI provoqué par la configuration de DebugSettings.EnableFrameRateCounter = true. Pour plus d’informations, consultez le problème GitHub 2835.
  • Correction d’un problème où XamlTypeInfo.g.cpp n'incluait pas les en-têtes nécessaires. Pour plus d’informations, consultez le problème GitHub 4907.
  • Correction d’un problème de blocage provoqué par une entrée de la souris et une entrée tactile multipoint effectuées simultanément. Pour plus d’informations, consultez le problème GitHub 7622.
  • Correction d’un problème empêchant un défilement d’une fenêtre d’application WinUI active lorsque le paramètre système pour désactiver le défilement des fenêtres inactives sur la souris était en vigueur. Pour plus d’informations, consultez le problème GitHub 8764.
  • Correction d’un blocage pendant la tentative de création d’une sous-classe de MediaPlayerElement.
  • Correction de problèmes de blocage et de fuite de mémoire dans TreeView.
  • Correction d’un problème de blocage d’application qui pouvait se produire pendant l’utilisation du clavier pour naviguer dans RadioButtons.
  • Correction d’un crash lors de l’utilisation du clavier pour naviguer dans un PipsPager.
  • Ajustement de l’échelle du contenu WebView2 selon le paramètre d’accessibilité "Taille du texte" dans les paramètres de Windows.
  • Correction d’un blocage pouvant se produire quand les animations étaient en cours d’exécution alors que l’affichage était désactivé.
  • Correction d’un problème de performances introduit dans la version 1.3 qui ajoutait une surcharge d’environ 10 % à la première disposition/au premier rendu.

Version 1.4 Preview 2 (1.4.0-preview2)

XAML Islands n’est plus expérimental

Xaml Islands et la plateforme ContentIslands sous-jacente ne sont plus expérimentaux.

  • Actuellement, XAML Islands n’est testé que pour une utilisation dans les applications C++. Cette version n’inclut aucun élément wrapper pratique à utiliser dans WPF ou WinForms.
  • DesktopWindowXamlSource et les types associés ont été ajoutés dans l’espace de noms Microsoft.UI.Xaml.Hosting pour XAML Islands. XamlRoot.ContentIslandEnvironment a été ajouté pour faciliter l'accès aux informations sous-jacentes de l'île concernant un élément.
  • De nombreux nouveaux types ont été introduits dans l’espace de noms Microsoft.UI.Content et l’espace de noms Microsoft.UI.Input comme prise en charge sous-jacente des îles XAML ou pour l’utilisation de cette fonctionnalité ContentIslands sans XAML.
  • Un nouvel élément DragDropManager (ainsi que des types associés) a été ajouté dans l’espace de noms Microsoft.UI.Input.DragDrop pour les scénarios Island.
Mises à jour ItemsView

La nouvelle ItemsView classe introduite dans la version 1.4-preview1 a été considérablement mise à jour avec de nouvelles propriétés et une nouvelle classe de prise en charge.

  • Le nouveau ItemsView contrôle affiche une collection de données. ItemsView est similaire aux contrôles ListView et GridView, mais est construit à l’aide des composants ItemsRepeater, ScrollView, ItemContainer et ItemCollectionTransitionProvider. Il offre la possibilité unique de se connecter à des implémentations personnalisées Layout ou ItemCollectionTransitionProvider. Un autre avantage clé est la possibilité de changer la disposition à la volée tout en préservant la sélection des éléments. Le contrôle interne ScrollView offre également des fonctionnalités qui ne sont pas disponibles dans le contrôle ListView/GridViewScrollViewer, comme la possibilité de contrôler l’animation lors des défilements programmatiques.
    • Une nouvelle ItemTransitionProvider propriété sur ItemsRepeater (et le nouveau ItemsView contrôle) vous permet de spécifier un ItemCollectionTransitionProvider objet pour contrôler les animations de transition sur ce contrôle. ** Une méthode CreateDefaultItemTransitionProvider a également été ajoutée à Layout, permettant à un objet de disposition de fournir une transition de secours pour l’accompagner si vous n'en spécifiez pas explicitement une sur le contrôle ItemsView.
    • Nouvelle IndexBasedLayoutOrientation propriété sur Layout où l'orientation de la disposition des éléments, le cas échéant, est basée sur leur index dans la collection source. La valeur par défaut est IndexBasedLayoutOrientation.None. Les dispositions personnalisées définissent cette propriété en appelant la nouvelle méthode (protégée). SetIndexBasedLayoutOrientation
    • Une nouvelle VisibleRect propriété sur VirtualizingLayoutContext récupère le rectangle de la zone de visualisation visible dans l'FrameworkElement associé au Layout. La méthode virtuelle VirtualizingLayoutContext.VisibleRectCore protégée peut être substituée pour fournir la valeur qui sera retournée à partir de la VisibleRect propriété.
  • La nouvelle LinedFlowLayout classe est généralement utilisée pour mettre en place les éléments du ItemsView contrôle de collection. Il est particulièrement utile pour afficher une collection d’images. Il le fait en les plaçant de gauche à droite, et de haut en bas, en lignes de hauteur égale. Les images remplissent une ligne horizontale, puis s’encapsulent à une ligne suivante. Les images peuvent être rognées à gauche et à droite pour s’adapter à une ligne. Elles peuvent également être développées horizontalement et rognées en haut et en bas pour remplir une ligne lorsque le mode étirement est utilisé.
Nouvelles fonctionnalités et mises à jour à partir du Kit de développement logiciel (SDK) d’application Windows
  • Popup/FlyoutBase.IsConstrainedToRootBounds = false est désormais pris en charge, ce qui permet à une popup/flyout de s'étendre au-delà des limites de la fenêtre parente. Une SystemBackdrop propriété a été ajoutée à ces types pour prendre en charge l’acrylique dans ces fenêtres contextuelles non contraintes. Les menus par défaut utilisent cette option pour avoir l’acrylique.
  • Closed, FrameworkClosedet IsClosed ont été ajoutés à DesktopAcrylicController et MicaController pour améliorer la gestion pendant l’arrêt de l’objet/thread.
  • DesktopAcrylicController.Kind peut maintenant être défini pour choisir entre certaines apparences acryliques standard.
  • DispatcherQueue dispose de nouveaux événements et outils pour faciliter un arrêt mieux organisé et pour les applications utilisant Islands d'exécuter facilement une boucle d’événements standard et prise en charge.
  • InputNonClientPointerSource dans l’espace de noms Microsoft.UI.Input peut être utilisé pour les scénarios de barre de titres personnalisés pour définir des régions de zone non cliente. Le code peut s’inscrire à des événements comme les survols et les clics sur ces régions.
  • AppWindow a quelques nouveaux outils pour obtenir et pour s'associer à un DispatcherQueue.
  • Le nouvel événement TreeView.SelectionChanged permet aux développeurs de réagir lorsque l'utilisateur ou le code source modifie la sélection des nœuds dans le composant TreeView.
  • Le nouveau ScrollView contrôle offre une nouvelle alternative à ScrollViewer. Ce nouveau contrôle est hautement aligné sur le comportement et l’API avec le contrôle existant ScrollViewer , mais est basé sur InteractionTracker, a de nouvelles fonctionnalités telles que les modifications de vue pilotée par l’animation et est également conçue pour garantir une fonctionnalité complète de ItemsRepeater. Voir Un ScrollViewer plus flexible · Problème #108 · microsoft/microsoft-ui-xaml (github.com) pour plus d’informations. Différents nouveaux types, y compris ScrollPresenter, font partie du modèle global ScrollView .
  • Le nouveau AnnotatedScrollBar contrôle étend les fonctionnalités d’une barre de défilement régulière en fournissant un moyen simple de parcourir une grande collection d’éléments. Cela est réalisé par le biais d’un rail cliquable avec des étiquettes qui agissent en tant que marqueurs. Il permet également une compréhension plus détaillée du contenu défilant en affichant une info-bulle lorsque l'on survole le rail cliquable.
Nouvelles API dans la version 1.4.0-preview2
Microsoft.UI
 
    ClosableNotifierHandler
    IClosableNotifier
Microsoft.UI.Composition.SystemBackdrops
 
    DesktopAcrylicController
        Closed
        FrameworkClosed
        IsClosed
        Kind
 
    DesktopAcrylicKind
    MicaController
        Closed
        FrameworkClosed
        IsClosed
Microsoft.UI.Content
 
    ContentCoordinateConverter
    ContentCoordinateRoundingMode
    ContentDeferral
    ContentEnvironmentSettingChangedEventArgs
    ContentEnvironmentStateChangedEventArgs
    ContentIsland
    ContentIslandAutomationProviderRequestedEventArgs
    ContentIslandEnvironment
    ContentIslandStateChangedEventArgs
    ContentLayoutDirection
    ContentSite
    ContentSiteEnvironment
    ContentSiteEnvironmentView
    ContentSiteRequestedStateChangedEventArgs
    ContentSiteView
    ContentSizePolicy
    DesktopChildSiteBridge
    DesktopSiteBridge
    IContentSiteBridge
Microsoft.UI.Dispatching
 
    DispatcherExitDeferral
    DispatcherQueue
        EnqueueEventLoopExit
        EnsureSystemDispatcherQueue
        FrameworkShutdownCompleted
        FrameworkShutdownStarting
        RunEventLoop
        RunEventLoop
 
    DispatcherQueueController
        ShutdownQueue
 
    DispatcherRunOptions
Microsoft.UI.Input
 
    CharacterReceivedEventArgs
    ContextMenuKeyEventArgs
    FocusChangedEventArgs
    InputActivationListener
        GetForIsland
 
    InputFocusChangedEventArgs
    InputFocusController
    InputKeyboardSource
        CharacterReceived
        ContextMenuKey
        GetCurrentKeyState
        GetForIsland
        GetKeyState
        KeyDown
        KeyUp
        SystemKeyDown
        SystemKeyUp
 
    InputNonClientPointerSource
    InputPointerSource
        GetForIsland
 
    InputPreTranslateKeyboardSource
    KeyEventArgs
    NonClientCaptionTappedEventArgs
    NonClientPointerEventArgs
    NonClientRegionKind
    NonClientRegionsChangedEventArgs
    PhysicalKeyStatus
    VirtualKeyStates
Microsoft.UI.Input.DragDrop
 
    DragDropManager
    DragDropModifiers
    DragInfo
    DragOperation
    DragUIContentMode
    DragUIOverride
    DropOperationTargetRequestedEventArgs
    IDropOperationTarget
Microsoft.UI.Windowing
 
    AppWindow
        AssociateWithDispatcherQueue
        Create
        DispatcherQueue
Microsoft.UI.Xaml
 
    XamlRoot
        ContentIslandEnvironment
Microsoft.UI.Xaml.Automation.Peers
 
    ItemsViewAutomationPeer
Microsoft.UI.Xaml.Controls
 
    AnnotatedScrollBar
    AnnotatedScrollBarDetailLabelRequestedEventArgs
    AnnotatedScrollBarLabel
    AnnotatedScrollBarScrollingEventArgs
    AnnotatedScrollBarScrollingEventKind
    IndexBasedLayoutOrientation
    ItemCollectionTransition
    ItemCollectionTransitionCompletedEventArgs
    ItemCollectionTransitionOperation
    ItemCollectionTransitionProgress
    ItemCollectionTransitionProvider
    ItemCollectionTransitionTriggers
    ItemsRepeater
        ItemTransitionProvider
        ItemTransitionProviderProperty
 
    ItemsView
    ItemsViewItemInvokedEventArgs
    ItemsViewSelectionChangedEventArgs
    ItemsViewSelectionMode
    Layout
        CreateDefaultItemTransitionProvider
        IndexBasedLayoutOrientation
        SetIndexBasedLayoutOrientation
 
    LinedFlowLayout
    LinedFlowLayoutItemCollectionTransitionProvider
    LinedFlowLayoutItemsInfoRequestedEventArgs
    LinedFlowLayoutItemsJustification
    LinedFlowLayoutItemsStretch
    ScrollingAnchorRequestedEventArgs
    ScrollingAnimationMode
    ScrollingBringingIntoViewEventArgs
    ScrollingChainMode
    ScrollingContentOrientation
    ScrollingInputKinds
    ScrollingInteractionState
    ScrollingRailMode
    ScrollingScrollAnimationStartingEventArgs
    ScrollingScrollBarVisibility
    ScrollingScrollCompletedEventArgs
    ScrollingScrollMode
    ScrollingScrollOptions
    ScrollingSnapPointsMode
    ScrollingZoomAnimationStartingEventArgs
    ScrollingZoomCompletedEventArgs
    ScrollingZoomMode
    ScrollingZoomOptions
    ScrollView
    TreeView
        SelectionChanged
 
    TreeViewSelectionChangedEventArgs
    VirtualizingLayoutContext
        VisibleRect
        VisibleRectCore
Microsoft.UI.Xaml.Controls.Primitives
 
    FlyoutBase
        SystemBackdrop
        SystemBackdropProperty
 
    IScrollController
    IScrollControllerPanningInfo
    Popup
        SystemBackdrop
        SystemBackdropProperty
 
    RepeatedScrollSnapPoint
    RepeatedZoomSnapPoint
    ScrollControllerAddScrollVelocityRequestedEventArgs
    ScrollControllerPanRequestedEventArgs
    ScrollControllerScrollByRequestedEventArgs
    ScrollControllerScrollToRequestedEventArgs
    ScrollPresenter
    ScrollSnapPoint
    ScrollSnapPointBase
    ScrollSnapPointsAlignment
    SnapPointBase
    ZoomSnapPoint
    ZoomSnapPointBase
Microsoft.UI.Xaml.Hosting
 
    DesktopWindowXamlSource
    DesktopWindowXamlSourceGotFocusEventArgs
    DesktopWindowXamlSourceTakeFocusRequestedEventArgs
    WindowsXamlManager
    XamlSourceFocusNavigationReason
    XamlSourceFocusNavigationRequest
    XamlSourceFocusNavigationResult

Version 1.4 Preview 1 (1.4.0-preview1)

Mises à jour des widgets

Trois nouvelles interfaces ont été ajoutées pour que les fournisseurs de widgets implémentent : IWidgetProvider2, IWidgetProviderAnalyticset IWidgetProviderErrors. IWidgetProvider2 permet aux fournisseurs de répondre à l'action Personnaliser appelée par l’utilisateur, qui est identique à ce qui est disponible pour les widgets de première partie. Les interfaces IWidgetProviderAnalytics et IWidgetProviderErrors sont utilisées par les fournisseurs pour collecter des données de télémétrie pour leurs widgets ; les événements analytiques et de panne concernant les widgets sont communiqués aux fournisseurs de widgets respectifs. Les classes WidgetCustomizationRequestedArgs, WidgetAnalyticsInfoReportedArgs et WidgetErrorInfoReportedArgs sont utilisées pour communiquer des informations pertinentes afin de soutenir de nouvelles fonctionnalités.

Nouvelles fonctionnalités de l’ensemble du Kit de développement logiciel (SDK) d’application Windows
  • Nouvelle ThemeSettings classe qui permet aux applications WinRT win32 de détecter quand le paramètre Contraste élevé du système a changé, similaire à la classe AccessibilitySettings de UWP. Pour plus d’informations, consultez la spécification de l’API ThemeSettings sur GitHub.
  • Popup/FlyoutBase.ShouldConstrainToRootBounds est désormais pris en charge pour permettre aux info-bulles, menus et autres fenêtres contextuelles de dépasser les limites de la fenêtre principale. La Préversion 1 ne prend pas encore entièrement en charge l’effet Acrylique ou d’autres SystemBackdrops sur une fenêtre contextuelle/menu déroulant ; des API et une implémentation supplémentaires seront incluses dans la prochaine version 1.4.
  • AccessKeyManager.EnterDisplayMode est une nouvelle méthode permettant d’afficher les clés d’accès pour l’élément prioritaire actuel d’une racine fournie. Les touches d’accès sont en « mode d’affichage » lorsque vous affichez un conseil de touche pour appeler une commande, par exemple en appuyant sur la touche Alt dans Paint pour afficher les touches qui correspondent aux contrôles. Cette méthode permet d’entrer par programmation le mode d’affichage.
  • Application.ResourceManagerRequested fournit un mécanisme permettant de fournir un autre IResourceManager moyen de résoudre les URI de ressources pour les scénarios lorsque la valeur par défaut ResourceManager ne fonctionnera pas. Pour plus d’informations, consultez la spécification de l’API Application.ResourceManagerRequested sur GitHub.
  • Nous introduisons un nouveau contrôle de liste appelé ItemsView et une classe concrète correspondante ItemContainer. ItemContainer est un conteneur léger avec des états de sélection et des visuels intégrés, qui peut facilement encapsuler le contenu souhaité et être utilisé avec ItemsView dans un scénario de contrôle de collection. ItemsView est toujours marqué expérimental dans la préversion 1, mais sera inclus dans la prochaine version 1.4.
  • La version du Kit de développement logiciel (SDK) WebView2 a été mise à jour de 1661.34 à 1823.32.
Nouvelles API dans la version 1.4.0-preview1
Microsoft.UI.System
 
    ThemeSettings
Microsoft.UI.Xaml
 
    Application
        ResourceManagerRequested
 
    ResourceManagerRequestedEventArgs
Microsoft.UI.Xaml.Automation.Peers
 
    ItemContainerAutomationPeer
Microsoft.UI.Xaml.Controls
 
    ItemContainer
Microsoft.UI.Xaml.Controls.Primitives
 
    CommandBarFlyoutCommandBar
        SystemBackdrop
        SystemBackdropProperty
Microsoft.UI.Xaml.Input
 
    AccessKeyManager
        EnterDisplayMode
Microsoft.Web.WebView2.Core
 
    CoreWebView2
        LaunchingExternalUriScheme
        MemoryUsageTargetLevel
 
    CoreWebView2File
    CoreWebView2LaunchingExternalUriSchemeEventArgs
    CoreWebView2MemoryUsageTargetLevel
    CoreWebView2PermissionKind
        WindowManagement
 
    CoreWebView2Profile
        CookieManager
        IsGeneralAutofillEnabled
        IsPasswordAutosaveEnabled
 
    CoreWebView2Settings
        IsReputationCheckingRequired
 
    CoreWebView2WebMessageReceivedEventArgs
        AdditionalObjects
Microsoft.Windows.Widgets.Providers
 
    IWidgetProvider2
    IWidgetProviderAnalytics
    IWidgetProviderErrors
    WidgetAnalyticsInfoReportedArgs
    WidgetCustomizationRequestedArgs
    WidgetErrorInfoReportedArgs

Version 1.4 Expérimentale (1.4.0-experimental1)

Corrections de bogues

Cette version contient des correctifs divers, notamment les suivants :

  • Correction d’un problème où l’activation du compteur de vitesse de trame des paramètres de débogage dans une nouvelle application de bureau WinUI provoquait une violation d’accès. Pour plus d’informations, consultez le problème 2835 sur GitHub.
  • Correction d’un problème où le défilement horizontal sur un pavé tactile ne fonctionnait pas dans une page web WebView2. Pour plus d’informations, consultez le problème 7772 sur GitHub.
API expérimentales supplémentaires

Cette version inclut les API expérimentales nouvelles et modifiées suivantes :

Microsoft.UI

   IClosableNotifier
Microsoft.UI.Composition.SystemBackdrops

   DesktopAcrylicController
       Closed
       FrameworkClosed
       Kind

   DesktopAcrylicKind
   MicaController
       Closed
       FrameworkClosed
Microsoft.UI.Content

   ContentAppWindowBridge
       SettingChanged

   ContentEnvironmentSettingChangedEventArgs
   ContentExternalBackdropLink
   ContentExternalOutputLink
       ExternalOutputBorderMode

   ContentIsland
       FrameworkClosed

   ContentIslandWindow
       SettingChanged

   ContentSite
       FrameworkClosed

   ContentSiteWindow
       NotifySettingChanged
       SettingChanged

   CoreWindowTopLevelWindowBridge
       SettingChanged

   DesktopSiteBridge
       Closed
       FrameworkClosed

   IContentWindow
       SettingChanged

   SystemVisualSiteBridge
       Closed
       FrameworkClosed
Microsoft.UI.Input

   InputLayoutPolicy
   InputNonClientPointerSource
       ConfigurationChanged
       GetForWindowId

   NonClientRegionConfigurationChangedEventArgs
Microsoft.UI.System

   ThemeSettings
Microsoft.UI.Windowing

   DisplayArea
       GetMetricsFromWindowId
Microsoft.UI.Xaml

   XamlRoot
       ContentWindow
Microsoft.UI.Xaml.Controls

   ItemContainer
       Child
       ChildProperty

   ItemContainerMultiSelectMode
       Extended

   ItemsView
       Animator
       AnimatorProperty

   MenuFlyoutPresenter
       SystemBackdrop
       SystemBackdropProperty

   RiverFlowLayout
       InvalidateItemsInfo
       RequestedRangeCount
       RequestedRangeStartIndex

   RiverFlowLayoutElementAnimator
Microsoft.UI.Xaml.Controls.Primitives

   CommandBarFlyoutCommandBar
       SystemBackdrop
       SystemBackdropProperty
Microsoft.UI.Xaml.Input

   AccessKeyManager
       EnterDisplayMode