Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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ù
ItemsRepeaterne générerait pas suffisamment d’éléments s’il se trouvait dans uneShouldConstrainToRootBounds="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.pridans l'resources.pride 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
BreadcrumbBarproblè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
CommandBarFlyoutqui 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 = LocaletTabNavigation = CyclepourListViewetGridView, 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,IWidgetProviderAnalyticsetIWidgetProviderErrors.IWidgetProvider2permet 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 interfacesIWidgetProviderAnalyticsetIWidgetProviderErrorssont 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 classesWidgetCustomizationRequestedArgs,WidgetAnalyticsInfoReportedArgsetWidgetErrorInfoReportedArgssont 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.
DesktopWindowXamlSourceet les types associés ont été ajoutés dans l’espace de noms Microsoft.UI.Xaml.Hosting pour XAML Islands.XamlRoot.ContentIslandEnvironmenta é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é
ItemsViewet une classe concrète correspondanteItemContainer.ItemContainerest 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é avecItemsViewdans un scénario de contrôle de collection.
- Le nouveau
ItemsViewcontrôle affiche une collection de données.ItemsViewest similaire aux contrôlesListViewetGridView, mais est construit à l’aide des composantsItemsRepeater,ScrollView,ItemContaineretItemCollectionTransitionProvider. Il offre la possibilité unique de se connecter à des implémentations personnaliséesLayoutouItemCollectionTransitionProvider. 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 interneScrollViewoffre également des fonctionnalités qui ne sont pas disponibles dans le contrôleListView/GridViewScrollViewer, comme la possibilité de contrôler l’animation lors des défilements programmatiques.
- Une nouvelle
ItemTransitionProviderpropriété surItemsRepeater(et le nouveauItemsViewcontrôle) vous permet de spécifier unItemCollectionTransitionProviderobjet pour contrôler les animations de transition sur ce contrôle. ** Une méthodeCreateDefaultItemTransitionProvidera é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ôleItemsView.- Nouvelle
IndexBasedLayoutOrientationpropriété surLayoutoù 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 estIndexBasedLayoutOrientation.None. Les dispositions personnalisées définissent cette propriété en appelant la nouvelle méthode (protégée).SetIndexBasedLayoutOrientation- Une nouvelle
VisibleRectpropriété surVirtualizingLayoutContextrécupère le rectangle de la zone de visualisation visible dans l'FrameworkElementassocié auLayout. La méthode virtuelleVirtualizingLayoutContext.VisibleRectCoreprotégée peut être substituée pour fournir la valeur qui sera retournée à partir de laVisibleRectpropriété.- La nouvelle
LinedFlowLayoutclasse est généralement utilisée pour mettre en place les éléments duItemsViewcontrô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
ThemeSettingsclasse 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.EnterDisplayModeest 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.ResourceManagerRequestedfournit un mécanisme permettant de fournir un autreIResourceManagermoyen de résoudre les URI de ressources pour les scénarios lorsque la valeur par défautResourceManagerne 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 = falseest désormais pris en charge, ce qui permet à une popup/flyout de s'étendre au-delà des limites de la fenêtre parente. UneSystemBackdropproprié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,FrameworkClosedetIsClosedont été ajoutés àDesktopAcrylicControlleretMicaControllerpour améliorer la gestion pendant l’arrêt de l’objet/thread.DesktopAcrylicController.Kindpeut maintenant être défini pour choisir entre certaines apparences acryliques standard.DispatcherQueuedispose 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.InputNonClientPointerSourcedans 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.AppWindowa quelques nouveaux outils pour obtenir et pour s'associer à unDispatcherQueue.- Le nouvel événement
TreeView.SelectionChangedpermet aux développeurs de réagir lorsque l'utilisateur ou le code source modifie la sélection des nœuds dans le composantTreeView.- Le nouveau
ScrollViewcontrôle offre une nouvelle alternative àScrollViewer. Ce nouveau contrôle est hautement aligné sur le comportement et l’API avec le contrôle existantScrollViewer, mais est basé surInteractionTracker, 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 deItemsRepeater. Voir Un ScrollViewer plus flexible · Problème #108 · microsoft/microsoft-ui-xaml (github.com) pour plus d’informations. Différents nouveaux types, y comprisScrollPresenter, font partie du modèle globalScrollView.- Le nouveau
AnnotatedScrollBarcontrô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
- Quand vous utilisez
ExtendsContentIntoTitleBar = true, les clics en haut à gauche de la fenêtre affichent toujours par défaut le menu de la fenêtre système (Réduire/Fermer/etc.) au lieu de laisser l’entrée du pointeur dans le contenu de la fenêtre. Cela signifie, par exemple, qu’un bouton Précédent dans cette zone de la barre de titre ne fonctionne pas. Une solution de contournement pour ce problème est de définirAppWindow.TitleBar.IconShowOptions = Microsoft.UI.Windowing.IconShowOptions.HideIconAndSystemMenusur l’AppWindow de la fenêtre.- Il existe de nouvelles exceptions pouvant être poursuivies pour le masquage des fenêtres contextuelles/volets
ShouldConstrainToRootBounds="False". Cela comprend le masquage des info-bulles, comme indiqué ici : Ignorer une info-bulle lève 4 exceptions natives · Problème n° 8699 · microsoft/microsoft-ui-xaml (github.com)- Dans la version 1.4, les boutons légende réduire/agrandir/fermer pour
ExtendsContentIntoTitleBar = truesont maintenant dessinés par AppWindow au lieu de XAML. C’est un comportement par défaut, mais il peut impacter les applications qui remplaçaient les styles internes de XAML pour masquer ou davantage personnaliser ces boutons, comme dans ce rapport : Impossible de masquer le bouton légende dans la barre de titre · Problème n° 8705 · microsoft/microsoft-ui-xaml (github.com)- Il y a eu un changement cassant dans .NET 8 sur la façon de gérer le graphe de l’identificateur d’exécution : [Changement cassant] : Les projets ciblant .NET 8 et versions ultérieures utilisent par défaut un graphe RID plus petit et portable. · Problème n° 36527 · dotnet/docs (github.com). En raison de ce problème et parce que .NET 8 n’a pas encore été publié officiellement, le SDK d’application Windows 1.4 ne prend pas officiellement en charge .NET 8. Toutefois, si vous voulez quand même cibler la préversion de .NET 8 avec cette version du SDK d’application, nous vous recommandons les étapes suivantes :
- La définition de UseRidGraph sur true est recommandée. Vous devez également mettre à jour la propriété
<RuntimeIdentifiers>dans le fichier.csprojsur<RuntimeIdentifiers>win-x86;win-x64;win-arm64</RuntimeIdentifiers>, et mettre à jour chaque fichierPropeties\*pubxmlpour passer dewin10àwindans la propriété<RuntimeIdentifier>(par exemple,<RuntimeIdentifier>win-x86</RuntimeIdentifier>).- Avec le SDK d’application Windows 1.4, la cible
GenerateDeploymentManagerCSdansMicrosoft.WindowsAppSDK.DeploymentManager.CS.targetsa été renomméeGenerateBootstrapCS.- L’arrière-plan
MenuFlyoutn’utilise pas le thème demandé par l’application :
- Le texte MenuFlyoutItem ne se synchronise pas avec le thème système. · Problème n° 8678 · microsoft/microsoft-ui-xaml (github.com)
- Préversion 1.4 : le thème d'arrière-plan du volet est dérivé du thème système et non de son élément associé · Problème n° 8756 · microsoft/microsoft-ui-xaml (github.com)
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.cppn'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.
DesktopWindowXamlSourceet les types associés ont été ajoutés dans l’espace de noms Microsoft.UI.Xaml.Hosting pour XAML Islands.XamlRoot.ContentIslandEnvironmenta é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
ItemsViewclasse 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
ItemsViewcontrôle affiche une collection de données.ItemsViewest similaire aux contrôlesListViewetGridView, mais est construit à l’aide des composantsItemsRepeater,ScrollView,ItemContaineretItemCollectionTransitionProvider. Il offre la possibilité unique de se connecter à des implémentations personnaliséesLayoutouItemCollectionTransitionProvider. 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 interneScrollViewoffre également des fonctionnalités qui ne sont pas disponibles dans le contrôleListView/GridViewScrollViewer, comme la possibilité de contrôler l’animation lors des défilements programmatiques.
- Une nouvelle
ItemTransitionProviderpropriété surItemsRepeater(et le nouveauItemsViewcontrôle) vous permet de spécifier unItemCollectionTransitionProviderobjet pour contrôler les animations de transition sur ce contrôle. ** Une méthodeCreateDefaultItemTransitionProvidera é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ôleItemsView.- Nouvelle
IndexBasedLayoutOrientationpropriété surLayoutoù 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 estIndexBasedLayoutOrientation.None. Les dispositions personnalisées définissent cette propriété en appelant la nouvelle méthode (protégée).SetIndexBasedLayoutOrientation- Une nouvelle
VisibleRectpropriété surVirtualizingLayoutContextrécupère le rectangle de la zone de visualisation visible dans l'FrameworkElementassocié auLayout. La méthode virtuelleVirtualizingLayoutContext.VisibleRectCoreprotégée peut être substituée pour fournir la valeur qui sera retournée à partir de laVisibleRectpropriété.- La nouvelle
LinedFlowLayoutclasse est généralement utilisée pour mettre en place les éléments duItemsViewcontrô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 = falseest désormais pris en charge, ce qui permet à une popup/flyout de s'étendre au-delà des limites de la fenêtre parente. UneSystemBackdropproprié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,FrameworkClosedetIsClosedont été ajoutés àDesktopAcrylicControlleretMicaControllerpour améliorer la gestion pendant l’arrêt de l’objet/thread.DesktopAcrylicController.Kindpeut maintenant être défini pour choisir entre certaines apparences acryliques standard.DispatcherQueuedispose 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.InputNonClientPointerSourcedans 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.AppWindowa quelques nouveaux outils pour obtenir et pour s'associer à unDispatcherQueue.- Le nouvel événement
TreeView.SelectionChangedpermet aux développeurs de réagir lorsque l'utilisateur ou le code source modifie la sélection des nœuds dans le composantTreeView.- Le nouveau
ScrollViewcontrôle offre une nouvelle alternative àScrollViewer. Ce nouveau contrôle est hautement aligné sur le comportement et l’API avec le contrôle existantScrollViewer, mais est basé surInteractionTracker, 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 deItemsRepeater. Voir Un ScrollViewer plus flexible · Problème #108 · microsoft/microsoft-ui-xaml (github.com) pour plus d’informations. Différents nouveaux types, y comprisScrollPresenter, font partie du modèle globalScrollView.- Le nouveau
AnnotatedScrollBarcontrô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 IClosableNotifierMicrosoft.UI.Composition.SystemBackdrops DesktopAcrylicController Closed FrameworkClosed IsClosed Kind DesktopAcrylicKind MicaController Closed FrameworkClosed IsClosedMicrosoft.UI.Content ContentCoordinateConverter ContentCoordinateRoundingMode ContentDeferral ContentEnvironmentSettingChangedEventArgs ContentEnvironmentStateChangedEventArgs ContentIsland ContentIslandAutomationProviderRequestedEventArgs ContentIslandEnvironment ContentIslandStateChangedEventArgs ContentLayoutDirection ContentSite ContentSiteEnvironment ContentSiteEnvironmentView ContentSiteRequestedStateChangedEventArgs ContentSiteView ContentSizePolicy DesktopChildSiteBridge DesktopSiteBridge IContentSiteBridgeMicrosoft.UI.Dispatching DispatcherExitDeferral DispatcherQueue EnqueueEventLoopExit EnsureSystemDispatcherQueue FrameworkShutdownCompleted FrameworkShutdownStarting RunEventLoop RunEventLoop DispatcherQueueController ShutdownQueue DispatcherRunOptionsMicrosoft.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 VirtualKeyStatesMicrosoft.UI.Input.DragDrop DragDropManager DragDropModifiers DragInfo DragOperation DragUIContentMode DragUIOverride DropOperationTargetRequestedEventArgs IDropOperationTargetMicrosoft.UI.Windowing AppWindow AssociateWithDispatcherQueue Create DispatcherQueueMicrosoft.UI.Xaml XamlRoot ContentIslandEnvironmentMicrosoft.UI.Xaml.Automation.Peers ItemsViewAutomationPeerMicrosoft.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 VisibleRectCoreMicrosoft.UI.Xaml.Controls.Primitives FlyoutBase SystemBackdrop SystemBackdropProperty IScrollController IScrollControllerPanningInfo Popup SystemBackdrop SystemBackdropProperty RepeatedScrollSnapPoint RepeatedZoomSnapPoint ScrollControllerAddScrollVelocityRequestedEventArgs ScrollControllerPanRequestedEventArgs ScrollControllerScrollByRequestedEventArgs ScrollControllerScrollToRequestedEventArgs ScrollPresenter ScrollSnapPoint ScrollSnapPointBase ScrollSnapPointsAlignment SnapPointBase ZoomSnapPoint ZoomSnapPointBaseMicrosoft.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,IWidgetProviderAnalyticsetIWidgetProviderErrors.IWidgetProvider2permet 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 interfacesIWidgetProviderAnalyticsetIWidgetProviderErrorssont 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 classesWidgetCustomizationRequestedArgs,WidgetAnalyticsInfoReportedArgsetWidgetErrorInfoReportedArgssont 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
ThemeSettingsclasse 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.ShouldConstrainToRootBoundsest 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.EnterDisplayModeest 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.ResourceManagerRequestedfournit un mécanisme permettant de fournir un autreIResourceManagermoyen de résoudre les URI de ressources pour les scénarios lorsque la valeur par défautResourceManagerne 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é
ItemsViewet une classe concrète correspondanteItemContainer.ItemContainerest 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é avecItemsViewdans un scénario de contrôle de collection.ItemsViewest 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 ThemeSettingsMicrosoft.UI.Xaml Application ResourceManagerRequested ResourceManagerRequestedEventArgsMicrosoft.UI.Xaml.Automation.Peers ItemContainerAutomationPeerMicrosoft.UI.Xaml.Controls ItemContainerMicrosoft.UI.Xaml.Controls.Primitives CommandBarFlyoutCommandBar SystemBackdrop SystemBackdropPropertyMicrosoft.UI.Xaml.Input AccessKeyManager EnterDisplayModeMicrosoft.Web.WebView2.Core CoreWebView2 LaunchingExternalUriScheme MemoryUsageTargetLevel CoreWebView2File CoreWebView2LaunchingExternalUriSchemeEventArgs CoreWebView2MemoryUsageTargetLevel CoreWebView2PermissionKind WindowManagement CoreWebView2Profile CookieManager IsGeneralAutofillEnabled IsPasswordAutosaveEnabled CoreWebView2Settings IsReputationCheckingRequired CoreWebView2WebMessageReceivedEventArgs AdditionalObjectsMicrosoft.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 IClosableNotifierMicrosoft.UI.Composition.SystemBackdrops DesktopAcrylicController Closed FrameworkClosed Kind DesktopAcrylicKind MicaController Closed FrameworkClosedMicrosoft.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 FrameworkClosedMicrosoft.UI.Input InputLayoutPolicy InputNonClientPointerSource ConfigurationChanged GetForWindowId NonClientRegionConfigurationChangedEventArgsMicrosoft.UI.System ThemeSettingsMicrosoft.UI.Windowing DisplayArea GetMetricsFromWindowIdMicrosoft.UI.Xaml XamlRoot ContentWindowMicrosoft.UI.Xaml.Controls ItemContainer Child ChildProperty ItemContainerMultiSelectMode Extended ItemsView Animator AnimatorProperty MenuFlyoutPresenter SystemBackdrop SystemBackdropProperty RiverFlowLayout InvalidateItemsInfo RequestedRangeCount RequestedRangeStartIndex RiverFlowLayoutElementAnimatorMicrosoft.UI.Xaml.Controls.Primitives CommandBarFlyoutCommandBar SystemBackdrop SystemBackdropPropertyMicrosoft.UI.Xaml.Input AccessKeyManager EnterDisplayMode
Windows developer