Partager via


Notes de publication du canal stable pour le SDK d’application Windows 1.4

Le canal stable fournit les versions des SDK d’application Windows prises en charge par les applications dans les environnements de production. Les applications qui utilisent la version stable du SDK d’application Windows peuvent également être publiées dans le Microsoft Store.

Liens importants :

Dernière version de la chaîne stable :

Téléchargements pour le SDK d’application Windows

Remarque

Les extensions SDK d'application Windows Visual Studio Extensions (VSIX) ne sont plus distribuées sous forme de téléchargement séparé. Elles sont disponibles dans le Marché Visual Studio à l'intérieur de Visual Studio.

Version 1.4.7 (1.4.240802001)

Il s’agit d’une version de maintenance du SDK d’application Windows qui comprend des correctifs de bogues critiques pour la version 1.4.

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

Il s’agit d’une version de maintenance du SDK d’application Windows qui comprend des correctifs de bogues critiques pour la version 1.4.

  • 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 sur le serveur source de WinUI pour le débogage afin de pointer correctement vers le référentiel GitHub microsoft-ui-xaml.
  • Correction d'un problème avec la correction du problème GitHub #8857 pour fusionner correctement une bibliothèque resources.pri dans le fichier resources.pri.

Version 1.4.5 (1.4.240211001)

Il s’agit d’une version de maintenance du SDK d’application Windows qui comprend des correctifs de bogues critiques pour la version 1.4.

  • 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.
  • Résolution d’un plantage potentiel à l’arrêt lors de la libération de ressources graphiques.

Version 1.4.4 (1.4.231219000)

Il s’agit d’une version de maintenance du SDK d’application Windows qui comprend des correctifs de bogues critiques pour la version 1.4.

  • 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 de la prise en charge SDK d'application Windows pour la gestion des ressources spécifiques à .NET 8 RID.
  • 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)

Il s’agit d’une version de maintenance du SDK d’application Windows qui comprend des correctifs de bogues critiques pour la version 1.4.

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

Il s’agit d’une version de maintenance du SDK d’application Windows qui comprend des correctifs de bogues critiques pour la version 1.4.

  • 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 de barre de titre qui empêchait le fonctionnement correct du bouton Précédent.
  • 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 selon lequel les packages WinAppSDK 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 problème 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 WinAppSDK pour disposer des informations appropriées sur la version des ressources.

Version 1.4.1 (1.4.230913002)

Il s’agit d’une version de maintenance du SDK d’application Windows qui comprend des correctifs de bogues critiques pour la version 1.4.

  • 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 entraînait la transparence totale des arrière-plans acryliques 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.

nouvelles fonctionnalités, mises à jour et problèmes connus pour la version 1.4

Les sections suivantes décrivent les fonctionnalités nouvelles et mises à jour, et les problèmes connus de la version 1.4.

Dans une application existante du SDK d’application Windows 1.3, vous pouvez mettre à jour votre package Nuget vers la version 1.4.230822000 (consultez la section Mettre à jour un package dans Installer et gérer des packages dans Visual Studio en utilisant le Gestionnaire de package NuGet).

Pour obtenir le runtime et le MSIX mis à jour, consultez les derniers téléchargements du SDK d'application Windows.

Fusion de la barre de titre personnalisée et de la barre de titre 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 :

  • Amélioration du scénario par défaut : le développeur ne définit pas d’élément de barre de titre spécifiquement (remplace la barre de titre de secours de WinUI 2)
  • 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 le développeur qui peut combiner et faire correspondre des API de barre de titre AppWindow. Par exemple, il peut utiliser l’API WinUI 3 de niveau supérieur dans la plupart des scénarios, mais utiliser des API AppWindow mixtes pour un contrôle de niveau inférieur

Mises à jour des widgets

Trois nouvelles interfaces ont été ajoutées pour les fournisseurs de widgets : IWidgetProvider2, IWidgetProviderAnalytics et IWidgetProviderErrors. IWidgetProvider2 permet aux fournisseurs de répondre à l’action Personnaliser appelée par l’utilisateur, comme pour les widgets internes. Les interfaces IWidgetProviderAnalytics et IWidgetProviderErrors sont utilisées par les fournisseurs afin de collecter des données de télémétrie pour leurs widgets ; les événements d’analyse et d’échec sur les widgets sont communiqués aux fournisseurs de widgets respectifs. Les classes WidgetCustomizationRequestedArgs, WidgetAnalyticsInfoReportedArgs et WidgetErrorInfoReportedArgs sont utilisées afin de communiquer des informations pertinentes pour prendre en charge les 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 est testé uniquement pour les applications C++. Cette version n’a aucun élément de wrapper pratique pouvant être utilisé 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 vous aider à accéder aux informations Island sous-jacentes d’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 pour la prise en charge sous-jacente de XAML Islands ou pour utiliser cette fonctionnalité ContentIslands sans XAML.
  • Un nouveau DragDropManager (plus les 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 la classe concrète ItemContainer correspondante. 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 contrôle ItemsView affiche une collection de données. ItemsView est similaire aux contrôles ListView et GridView, mais est généré à partir des composants ItemsRepeater, ScrollView, ItemContainer et ItemCollectionTransitionProvider. Il offre la possibilité unique de se connecter à des implémentations de Layout ou ItemCollectionTransitionProvider personnalisées. 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 non disponibles dans le contrôle ScrollViewer de ListView/GridView, comme la possibilité de contrôler l’animation pendant les défilements programmatiques.
    • Une nouvelle propriété ItemTransitionProvider sur ItemsRepeater (et le nouveau contrôle ItemsView) vous permet de spécifier un objet ItemCollectionTransitionProvider pour contrôler les animations de transition sur ce contrôle. Une méthode CreateDefaultItemTransitionProvider a également été ajoutée à Layout, ce qui permet à un objet de disposition de fournir une transition de secours pour l’accompagner si vous n’en fournissez pas explicitement sur le contrôle ItemsView.
    • Nouvelle propriété IndexBasedLayoutOrientation sur Layout où l’orientation de la disposition, le cas échéant, des éléments 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 propriété VisibleRect sur VirtualizingLayoutContext obtient le rectangle visible de la fenêtre d’affichage dans le FrameworkElement associé à Layout. La méthode virtuelle VirtualizingLayoutContext.VisibleRectCore protégée peut être remplacée pour fournir la valeur que la propriété VisibleRect doit renvoyer.
  • La nouvelle classe LinedFlowLayout est généralement utilisée pour mettre en place les éléments du contrôle de collection ItemsView. Elle est particulièrement utile pour afficher une collection d’images. Elle le fait en les disposant de gauche à droite et de haut en bas, en lignes de hauteur égale. Les images remplissent une ligne horizontale, puis passent à la 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 quand le mode d’étirement est utilisé.

Nouvelles fonctionnalités de WinAppSDK

  • Nouvelle classe ThemeSettings qui permet aux applications WinRT Win32 de détecter quand le paramètre Contraste élevé du système a changé, comme la classe AccessibilitySettingsUWP. Consultez la Spécification de l’API ThemeSettings sur GitHub pour plus d’informations.
  • AccessKeyManager.EnterDisplayMode est une nouvelle méthode qui affiche les clés d’accès pour l’élément actuel d’une racine fournie ayant le focus. Les touches d’accès sont en « mode d’affichage » quand elles affichent un conseil de touche pour appeler une commande, par exemple, quand vous appuyez sur la touche Alt dans Paint pour afficher les touches qui correspondent aux contrôles. Cette méthode permet d’entrer le mode d’affichage programmatiquement.
  • Application.ResourceManagerRequested fournit un mécanisme pour avoir un autre IResourceManager qui résout les URI de ressource dans les scénarios où le ResourceManager par défaut ne fonctionne pas. Pour plus d’informations, consultez la Spécification de l’API Application.ResourceManagerRequested sur GitHub.
  • Le SDK WebView2 a été mis à jour de la version 1661.34 à la version 1823.32.
  • Popup/FlyoutBase.IsConstrainedToRootBounds = false est désormais pris en charge, ce qui permet à une fenêtre contextuelle/un contrôle suspendu de s’étendre en dehors des limites de la fenêtre parente. Une propriété SystemBackdrop 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, FrameworkClosed et IsClosed ont été ajoutés à DesktopAcrylicController et MicaController pour améliorer la gestion pendant l’arrêt de l’objet/du thread.
  • DesktopAcrylicController.Kind peut maintenant être défini pour choisir des apparences acryliques standard.
  • DispatcherQueue a de nouveaux événements et applications auxiliaires pour permettre une meilleure organisation de l’arrêt et pour que les applications utilisant Islands puissent exécuter facilement une boucle d’événements prise en charge standard.
  • InputNonClientPointerSource dans l’espace de noms Microsoft.UI.Input peut être utilisé dans les scénarios de barre de titre personnalisé pour définir des régions de zone non cliente. Le code peut s’inscrire à des événements correspondants, comme les événements de pointage et de clic sur ces régions.
  • AppWindow a des nouvelles applications auxiliaires qu’il peut obtenir et associer à un DispatcherQueue.
  • Le nouvel événement TreeView.SelectionChanged permet aux développeurs de répondre quand l’utilisateur ou le code-behind change l’ensemble des nœuds sélectionnés dans le contrôle TreeView.
  • Le nouveau contrôle ScrollView offre une nouvelle alternative à ScrollViewer. Ce nouveau contrôle est hautement aligné en matière de comportement et d’API sur le contrôle existant ScrollViewer, mais est basé sur InteractionTracker, a de nouvelles fonctionnalités comme les changements de vue pilotés par l’animation, et est également conçu pour garantir une fonctionnalité complète de ItemsRepeater. Consultez Un ScrollViewer plus flexible · Problème n° 108 · microsoft/microsoft-ui-xaml (github.com) pour plus d’informations. Différents nouveaux types, y compris ScrollPresenter, font partie du modèle ScrollView général.
  • Le nouveau contrôle AnnotatedScrollBar étend les fonctionnalités d’une barre de défilement classique en fournissant un moyen simple de parcourir une grande collection d’éléments. Le résultat est obtenu en utilisant une barre cliquable avec des étiquettes qui servent de marqueurs. Il permet également une compréhension plus granulaire du contenu de défilement en affichant une info-bulle quand vous pointez sur la barre cliquable.

Problèmes connus

Résolution des 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 Maj + tabulation 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 du runtime dans les applications de bureau WinUI provoqué par la définition de DebugSettings.EnableFrameRateCounter = true. Pour plus d’informations, consultez le problème GitHub 2835.
  • Correction d’un problème où XamlTypeInfo.g.cpp il n’avait 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 le défilement d’une fenêtre d’application WinUI 3 active quand 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 blocage pendant l’utilisation du clavier pour naviguer dans un PipsPager.
  • Correction du contenu WebView2 pour qu’il se mette à l’échelle avec le paramètre d’accessibilité « Taille du texte » dans l’application Paramètres.
  • 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.