Notes de publication de canal stable pour le Kit de développement logiciel (SDK) d’application Windows 1.5
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 :
- Si vous souhaitez mettre à niveau une application existante d’une version antérieure du SDK d’application Windows vers une version plus récente, consultez Mettre à jour des projets existants vers la dernière version du SDK d’application Windows.
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.5.9 (1.5.250108004)
Il s’agit d’une version de maintenance du SDK d’application Windows qui inclut des correctifs de bogues critiques pour la version 1.5.
- Correction d'un autre problème potentiel où un menu d'une CommandBar peut s'ouvrir vers le haut au lieu de vers le bas lorsque la CommandBar se trouve en bas de la fenêtre.
- Correction d’un incident potentiel lors de l’exécution sur du matériel graphique plus ancien.
Version 1.5.8 (1.5.241107002)
Il s’agit d’une version de maintenance du SDK d’application Windows qui inclut des correctifs de bogues critiques pour la version 1.5.
- Correction d’un incident potentiel lorsque la file d’attente d’entrée sur le thread semble être dans un état incorrect.
- Correction de certains blocages potentiels lors de l’utilisation
{x:Bind}
en vérifiant chaque composant pour la valeur Null. Les applications qui veulent que ce correctif soit récompilé avec cette version.
Version 1.5.7 (1.5.2410010000)
Il s’agit d’une version de maintenance du SDK d’application Windows qui inclut des correctifs de bogues critiques pour la version 1.5.
- Ajout de la détection pour un scénario rare où l’application arrête le rendu et ne récupère jamais.
- Correction d’un blocage potentiel lorsqu’un thread d’interface utilisateur ne initialise pas.
- Correction d’un problème potentiel où un menu désactivé d’une barre de commandes aurait pu s’ouvrir incorrectement au lieu de descendre lorsque commandBar était en bas de la fenêtre.
Version 1.5.6 (1.5.240802000)
Il s’agit d’une version de maintenance du SDK d’application Windows qui inclut des correctifs de bogues critiques pour la version 1.5.
- Correction d’un problème avec
InputNonClientPointerSource
des entrées parfois cassants sur les boutons Min/Max/Close. Pour plus d’informations, consultez le problème GitHub #9749. - Correction d’un blocage potentiel lors de la fermeture d’une fenêtre lors de l’utilisation d’un pavé tactile.
Version 1.5.5 (1.5.240627000)
Il s’agit d’une version de maintenance du SDK d’application Windows qui inclut des correctifs de bogues critiques pour la version 1.5.
- Correction d’un incident potentiel lors du chargement de l’image lorsque la source de l’image est modifiée avant la fin du chargement.
- Correction d’un incident potentiel lors de l’utilisation
InputNonClientPointerSource
. - Correction d’un problème où une fenêtre contenant uniquement un contrôle WebView2 ne définit pas correctement le focus clavier initial dans le WebView2, ce qui la laisse inutilisable par les outils de clavier et d’accessibilité. Pour plus d’informations, consultez le problème GitHub WebView2Feedback#2330.
Version 1.5.4 (1.5.240607001)
Il s’agit d’une version de maintenance du SDK d’application Windows qui inclut des correctifs de bogues critiques pour la version 1.5.
- Correction d’un problème avec le correctif pour le problème GitHub #8857 pour fusionner correctement les ressources d’une bibliothèque.pri dans les ressources de l’application.pri.
- Correction d’un problème où WebView2 a envoyé des événements supplémentaires
blur
etfocus
des événements sur chaque clic. Pour plus d’informations, consultez le problème GitHub #9288. Cela résout également les problèmes liés aux listes déroulantes qui ne répondent pas, comme indiqué dans le problème GitHub #9566. - Correction d’un problème où la création d’une fenêtre ou d’une fenêtre contextuelle a annulé toute opération de glisser en cours. Pour plus d’informations, consultez le problème GitHub #9360.
- Correction d’un problème où les fichiers SVG définissant une zone de vue négative ne sont plus rendus. Pour plus d’informations, consultez le problème GitHub #9415.
- Correction d’un problème où
x:Bind
la valeur Null n’a pas été recherchée avant d’utiliser une référence faible, ce qui pouvait entraîner un blocage. Pour plus d’informations, consultez le problème GitHub #9551. - Correction d’un problème où un curseur de redimensionnement s’affichait incorrectement sur les bords de la barre de titre lorsqu’une fenêtre était agrandie, ce qui entraînait également un comportement incorrect lors du clic ou du glissement dans ces zones. Pour plus d’informations, consultez le problème GitHub #8665.
Version 1.5.3 (1.5.240428000)
Il s’agit d’une version de maintenance du SDK d’application Windows qui inclut des correctifs de bogues critiques pour la version 1.5.
- Correction d'un problème où
ItemsRepeater
provoquait parfois l'affichage de sa fenêtre au premier plan. - Correction d'un plantage potentiel lors de la mise à jour de l'état de transparence d'un
AcrylicBrush
. - Correction d'un problème où
ItemsRepeater
ne générait pas assez d'éléments s'il se trouvait dans uneShouldConstrainToRootBounds="false"
fenêtre contextuelle plus haute ou plus large que la fenêtre principale. - Correction d'un problème où l'erreur MSB4086 pouvait se produire au moment de la compilation si le fichier de projet ne spécifiait pas de TargetPlatformVersion. Cette erreur a été trouvée dans le cadre du problème GitHub #9531.
Version 1.5.2 (1.5.240404000)
Il s’agit d’une version de maintenance du SDK d'application Windows qui comprend des corrections de bogues critiques pour la version 1.5 et une nouvelle fonctionnalité pour les fournisseurs de flux de widgets.
Mises à jour des fournisseurs de flux de widgets
- Les fournisseurs de flux peuvent désormais afficher des annonces dans le tableau de bord des widgets :
- La nouvelle API
FeedManager.TryShowAnnouncement
permet à un fournisseur de flux de demander que le tableau de bord des widgets affiche ses annonces. Pour afficher votre annonce, créez un objetFeedAnnouncement
et appelez l’APIFeedManager.TryShowAnnouncement
. - Les annonces de flux auront leurs propres badges affichés dans la barre des tâches, qui peuvent être personnalisés à l’aide de l’API
FeedAnnouncement
.
- La nouvelle API
- Les fournisseurs de flux peuvent désormais choisir de recevoir des informations d’analyse et des rapports d’erreur sur leur fournisseur lorsqu’un utilisateur interagit avec lui. Pour participer, votre fournisseur doit mettre en œuvre les interfaces
IFeedProviderAnalytics
et/ouIFeedProviderErrors
.
Les mises à jour des fournisseurs de flux incluent les nouvelles API suivantes :
Microsoft.Windows.Widgets.Feeds.Providers
FeedAnalyticsInfoReportedArgs
FeedErrorInfoReportedArgs
FeedManager
SendMessageToContent
TryShowAnnouncement
FeedMessageReceivedArgs
FeedResourceRequest
FeedResourceRequestedArgs
FeedResourceResponse
IFeedAnnouncementInvokedTarget
IFeedManager2
IFeedProviderAnalytics
IFeedProviderErrors
IFeedProviderMessage
IFeedResourceProvider
Microsoft.Windows.Widgets.Notifications
AnnouncementActionKind
AnnouncementTextColor
FeedAnnouncement
FeedAnnouncementInvokedArgs
Résolution des bogues
- Correction d’un problème où
DispatcherTimer
ne se déclenchait pas au bon moment si l’écran principal ne fonctionnait pas à 60 Hz. - Correction d’un problème où une fenêtre d’éditeur de méthode de saisie (IME) de boîte de texte serait incorrectement positionnée lors de l’exécution à un facteur d’échelle autre que 100 %. Pour plus d’informations, veuillez consulter la section GitHub #9382.
- 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 d’un plantage potentiel lorsque le
ItemsSource
d’un ListView est réinitialisé et que le focus est donné immédiatement. - Correction d’un problème où les popups/flyouts
ShouldConstrainToRootBounds="false"
n’appliquaient pas de transformation d’échelle héritée. Pour plus d’informations, consultez les problèmes GitHub #9118 et #9433. - Correction d’un plantage potentiel lorsqu’un objet Composition est détruit alors qu’une animation est toujours en cours.
- Correction d’un plantage potentiel lors de l’arrêt dans
NavigationView::RevokeNavigationViewItemRevokers
.
Version 1.5.1 (1.5.240311000)
Il s’agit d’une version de maintenance du SDK d’application Windows qui inclut des correctifs de bogues critiques pour la version 1.5.
- Correction d'un problème où les applications container Apps peuvent ne pas se construire à cause de l'impossibilité de copier « map.html ».
- Correction d'un problème où
MapControl
ne parvenait pas à s'initialiser en raison du rejet de jetons valides. Pour plus d’informations, veuillez consulter la section GitHub #9324. - Correction d'un problème où
MapControl
se chargeait avec un fond bleu. Pour plus d’informations, veuillez consulter la section GitHub #9377. - Correction d'un problème où le fait de cliquer sur le chevron d'un
NavigationViewItem
ne permettait pas de l'étendre ou de le réduire correctement en un seul clic. Cela provoquait également l'affichage de menus vides lorsque l'on cliquait sur le chevron en modePaneDisplayMode="Top"
. Pour plus d’informations, consultez les problèmes GitHub #9423 et #9426. - Correction d'un problème où le fait d'appuyer sur un
NavigationViewItem
avec le doigt ou un stylet empêchait l'élément de répondre à toute saisie ultérieure. Pour plus d’informations, veuillez consulter la section GitHub #9429. - Correction d'un problème lorsque vous cliquez sur un élément dans la zone
NavigationView.PaneFooter
Pour plus d’informations, veuillez consulter la section GitHub #9396. - Correction d'un problème où les icônes dans les menus s'affichaient parfois au mauvais endroit. Pour plus d’informations, veuillez consulter la section GitHub #9409.
- Correction d'un problème où Acrylic ne s'affiche pas dans les menus jusqu'à ce qu'on quitte la fenêtre et qu'on y revienne. Pour plus d’informations, veuillez consulter la section GitHub #9406.
- Correction d'un plantage qui pouvait se produire lors de l'initialisation de
TextBox
/RichEditBox
. Pour plus d’informations, veuillez consulter la section GitHub #9216. - Correction de quelques exceptions bruyantes que
NavigationView
lançait et capturait lors de sa destruction. - Correction d'un problème où un geste « pincer pour zoomer » s'affichait parfois comme un panoramique ou un appui en raison d'un déclenchement incorrect du message
PointerCaptureLost
.
Version 1.5
Les sections suivantes décrivent les fonctionnalités nouvelles et mises à jour, et les problèmes connus de la version 1.5.
Dans une application existante du SDK d’application Windows 1.4, vous pouvez mettre à jour votre package Nuget vers la version 1.5.240227000 (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 le runtime et les MSIX à jour, consultez Téléchargements pour le SDK d’application Windows.
Mises à jour du runtime et de l'arrêt de XAML Islands
Il existe une différence de comportement entre WinAppSDK 1.4 et WinAppSDK 1.5 pour les applications basées sur Xaml Islands lorsque la dernière fenêtre Xaml de n'importe quel thread est fermée.
- Dans WinAppSDK 1.4, le runtime Xaml quitte toujours la boucle d'événements du thread lorsque la dernière fenêtre Xaml d'un thread est fermée.
- Dans WinAppSDK 1.5 :
- Dans le cas d'une application de bureau WinUI, le comportement par défaut reste le même que dans WinAppSDK 1.4.
- Si vous utilisez Xaml pour l'API DesktopWindowXamlSource (« Xaml Islands »), le comportement par défaut est désormais que Xaml ne quitte pas automatiquement la boucle d'événements du thread.
- Dans les deux modes, vous pouvez modifier ce comportement en établissant la propriété
Application.DispatcherShutdownMode
.
Pour en savoir plus, veuillez consulter la documentation relative à la propriété Application.DispatcherShutdownMode
lorsqu'elle est disponible. Ceci complète la proposition GitHub n° 8492.
Il existe une différence de comportement entre WinAppSDK 1.4 et WinAppSDK 1.5 pour les applications basées sur XAML Islands en ce qui concerne la durée de vie du runtime XAML :
- Dans WinAppSDK 1.4, le runtime Xaml s'arrête sur un thread si tous les objets
WindowsXamlManager
etDesktopWindowXamlSource
d'un thread donné sont fermés ou arrêtés, ou si l'exécution deDispatcherQueue
sur ce thread est arrêtée (dans ce cas, le runtime Xaml s'arrête pendant la phaseDispatcherQueue.FrameworkShutdownStarting
). - Dans WinAppSDK 1.5, le runtime Xaml ne s'arrête sur un thread que si l'exécution de DispatcherQueue sur ce thread est arrêtée (le runtime XAML s'arrête systématiquement pendant la phase
DispatcherQueue.FrameworkShutdownStarting
).
Pour en savoir plus, veuillez consulter la documentation relative à la classe WindowsXamlManager
lorsqu'elle est disponible.
Il existe une différence de comportement dans WindowsXamlManager.InitializeForCurrentThread()
:
- Dans WinAppSDK 1.4,
WindowsXamlManager.InitializeForCurrentThread()
renvoie une instance unique d'un objetWindowsXamlManager
à chaque appel. - Dans WinAppSDK 1.5,
WindowsXamlManager.InitializeForCurrentThread()
renvoie une instance existante s'il en existe déjà une sur le thread.Close/Dispose()
est maintenant ignoré.
Contrôle WinUI Maps
Le contrôle WinUI Maps
est maintenant disponible ! Ce contrôle est alimenté par WebView2 et Azure Maps, et fournit les fonctionnalités suivantes :
- Mouvement panoramique et zoom avec les boutons de la carte ou par interaction tactile.
- Modification du style de la carte (satellite, relief ou affichage de la rue).
- Ajout par programmation d’épingles interactives avec des icônes personnalisables par le développeur à la carte.
- Personnalisation par les développeurs de l'endroit où la carte est centrée lors du chargement initial.
- Contrôle par les développeurs du masquage ou de l'affichage des boutons de mouvement panoramique, zoom et styles de carte.
Remarque
Pour utiliser le contrôle Maps
, vous aurez besoin d'une clé Azure Maps. Pour créer la clé, consultez la page de documentation Azure Maps sur la création d'une application web.
Le contrôle Maps
est entièrement nouveau et nous vous invitons à nous faire part de vos commentaires pour évaluer sa future orientation !
Nouveau contrôle SelectorBar
Dans la version 1.5, nous avons ajouté un nouveau contrôle SelectorBar
pour permettre aux utilisateurs de passer d'un affichage de données à un autre. Ce contrôle était précédemment connu sous le nom de « SegmentedControl » sur notre feuille de route 1.5.
Étiquettes dans les commandes primaires CommandBarFlyout
Les éléments visuels du CommandBarFlyout
ont été mis à jour afin d'afficher une étiquette de texte pour les éléments de la zone des commandes principales si la propriété Label
a été définie sur le AppBarButton
. Auparavant, les commandes primaires de la zone CommandBarFlyout
n'affichaient qu'une icône. Désormais, elles peuvent afficher à la fois une icône et un libellé pour une plus grande facilité d'utilisation.
Prise en charge de WebView2 pour les environnements et options personnalisés
Le contrôle WinUI WebView2
offre désormais la possibilité de personnaliser l'objet sous-jacentCoreWebView2
à l'aide d'un CoreWebView2Environment
et d'un CoreWebView2ControllerOptions
personnalisés. Cela permet à l'auteur de l'application de spécifier un autre chemin à partir duquel charger le WebView2Runtime, de choisir d'utiliser un UserDataFolder différent ou de définir des options telles que IsPrivateModeEnabled et ScriptLocale.
Prise en charge de .NET 8
Nous avons ajouté la prise en charge de .NET 8 dans une récente version 1.4 d'entretien, mais celle-ci contenait toujours l'avertissement relatif à l'utilisation de RID spécifiques à la plate-forme. Dans la version 1.5, nous avons achevé ce travail de manière à faire disparaître l'avertissement.
Amélioration du débogage et de la disponibilité des sources
Nous injectons maintenant les informations du serveur de source Github pour le code dans le repo microsoft-ui-xaml dans nos symboles publics, ce qui permet aux débogueurs de télécharger automatiquement le code source. Nous avons également apporté d'autres corrections et améliorations à nos symboles dans l'ensemble du WinAppSDK afin d'améliorer l'expérience de débogage.
Fonctionnalité améliorée pour le débogage des cycles de mise en page
Le débogage des cycles de mise en page dans une application WinUI peut s'avérer difficile. Dans la version 1.5, l'objet DebugSettings
expose désormais des options permettant d'activer des journaux et des points d'arrêt améliorés pour le processus de mise en page, afin de faciliter le débogage et la correction des cycles de mise en page dans l'application.
Autres nouvelles fonctionnalités de WinAppSDK
- Ajout de la prise en charge du modèle de déploiement PublishSingleFile. Pour en savoir plus sur PublishSingleFile, veuillez consulter la documentation relative au déploiement à fichier unique.
- Amélioration de la prise en charge des lecteurs d'écran, de la mise à l'échelle du texte et d'autres fonctions d'accessibilité.
- Diverses améliorations de la stabilité et des performances basées sur notre liste de bogues GitHub prioritaires.
Nouvelles fonctionnalités publiées séparément
De nouvelles versions des WinAppSDK Visual Studio Templates pour C# et C++ sont en cours de publication sur le Visual Studio Marketplace et apparaîtront quelques semaines après la sortie de la version 1.5. Avec la nouvelle version, les modèles peuvent désormais être publiés indépendamment des versions du WinAppSDK, ce qui nous offre une plus grande flexibilité dans la distribution des mises à jour aux clients.
Autres fonctionnalités prévues
Dans la version 1.5, nous avons progressé sur les fonctionnalités suivantes que nous avions annoncées sur notre feuille de route, mais que nous n'avons pas achevées. Elles se poursuivront dans la version 1.6.
- Fenêtres à onglets
- Prise en charge de glisser-déplacer pour WebView2
- Pour clarifier, dans la version 1.5, le glissement vers WebView2 est pris en charge, par exemple en faisant glisser un PNG de Explorateur de fichiers dans Bing pour La recherche visuelle. Le travail est en cours dans la version 1.6 pour prendre en charge le glissement hors de WebView2.
- Investigations sur la vue tableau et les contrôles de dessin (ink)
L'éclairage dynamique a été retiré de la feuille de route pour le moment.
Problèmes connus
- Lorsque vous utilisez des bibliothèques qui contiennent des ressources telles que des fichiers .xaml, vous pouvez rencontrer un message d'erreur au moment de l'exécution indiquant que ces ressources ne peuvent pas être trouvées. Dans ce cas, il peut être nécessaire d'insérer
<ShouldComputeInputPris>true</ShouldComputeInputPris>
dans le fichier de projet pour s'assurer que ces ressources sont incluses. - Cliquer sur le chevron d'un
NavigationViewItem
ne permet plus de l'agrandir ou de le réduire correctement en un seul clic. Le double-clic fonctionne toujours, de même que le fait de cliquer ailleurs sur leNavigationViewItem
Résolution des bogues
- Correction d'un problème où
StackPanel
appliquait un espacement aux éléments réduits. Pour plus d’informations, veuillez consulter la section GitHub #916. - Correction de problèmes avec les contrôles de défilement qui ne fonctionnaient plus après la fermeture d'une autre fenêtre de l'application. Pour plus d'informations, consultez les problèmes GitHub #9292 et #9355.
- Correction d'un crash lors de la définition de
DebugSettings.EnableFrameRateCounter
à Vrai avant le rendu de la première image. Pour plus d’informations, consultez le problème GitHub 2835. - Correction d'une erreur de compilation potentielle pour C++ lorsque certains en-têtes n'incluaient pas les dépendances nécessaires. Notez que le changement de l'ordre
#include
peut avoir un impact sur certaines applications, en provoquant par exemple une erreur de compilation pourIInspectable
si l'application utilise une version de C++/WinRT antérieure à 2023. Pour plus d’informations, veuillez consulter la section GitHub #9014. - Correction d’un problème où
ElementName
les liaisons ne fonctionnaient pas à l’intérieur duItemsRepeater
DataTemplate
. Pour plus d’informations, veuillez consulter la section GitHub #560. - Correction de plantages lors de l'exécution d'une application sous Visual Studio avec la barre d'outils in-app activée. Visual Studio 17.8 Preview 2 ou une version ultérieure est nécessaire pour bénéficier pleinement des corrections. Pour plus d’informations, veuillez consulter la section GitHub #8806.
- Correction d'un problème où
AnnotatedScrollbar
pouvait parfois se bloquer lors d'un défilement rapide. - Correction d'un problème où le texte du menu était parfois tronqué.
- Résolution d'un problème qui faisait que les conseils pédagogiques n'étaient pas correctement mis en valeur. Pour plus d’informations, veuillez consulter la section GitHub #3257.
- Résolution d'un problème qui provoquait le plantage de l'application lorsque le
TailVisibility
d'unTeachingTip
était configuré sur Réduit au démarrage. Pour plus d’informations, veuillez consulter la section GitHub #8731. - Correction d'un problème concernant la gestion des fichiers PRI lors de l'utilisation de bibliothèques. Pour plus d’informations, veuillez consulter la section GitHub #8857.
- Résolution d'un problème survenu dans la version 1.5-experimental2, dans laquelle la DLL de projection n'était pas générée. Pour plus d’informations, veuillez consulter la section GitHub #4152.
- Résolution d'un problème qui faisait que le bouton représentant des points de suspension dans la fenêtre pop-up de mise en forme du texte du
RichEditBox
n'affichait pas correctement la liste des actions. Pour plus d’informations, veuillez consulter la section GitHub #9140. - Résolution d'un problème qui faisait que
ListView
ne gérait pas correctement les raccourcis clavier. Pour plus d’informations, veuillez consulter la section GitHub #8063. - Résolution d'un problème de violation d'accès lors de l'utilisation de
AccessKey
pour fermer une fenêtre. Pour plus d’informations, veuillez consulter la section GitHub #8648. - Correction d'un crash lors de l'utilisation d'un
AccessKey
pour fermer une fenêtre. Pour plus d’informations, veuillez consulter la section GitHub #9002. - Résolution d'un problème affectant l'alignement du texte dans une
MenuFlyoutItem
au sein d'unMenuBar
. Pour plus d’informations, veuillez consulter la section GitHub #8755. - Résolution d'un problème qui faisait qu'un texte mis en surbrillance ne le restait pas lors d'un clic droit. Pour plus d’informations, veuillez consulter la section GitHub #1801.
- Résolution d'un problème qui faisait que les fenêtres inactives entraînaient le plantage de l'application lorsqu'elles étaient fermées. Pour plus d’informations, veuillez consulter la section GitHub #8913.
- Résolution d'un problème qui pouvait entraîner le blocage des applications en cas de défilement avec le bouton du milieu de la souris suivi d'un clic gauche immédiatement après. Pour plus d’informations, veuillez consulter la section GitHub #9233.
- Correction d’un problème provoquant des plantages d’applications au démarrage lors de l’utilisation d’un
NavigationViewItem
personnalisé. Pour plus d’informations, veuillez consulter la section GitHub #8814. - Correction d’un problème
NavigationView
où le bouton des points de suspension générait une erreur. Pour plus d’informations, veuillez consulter la section GitHub #8380. - Correction d’un problème où un
SystemBackdrop
ne s’affichait pas correctement dans une application multi-fenêtres. Pour plus d’informations, veuillez consulter la section GitHub #8423. - Correction d’un problème de duplication lors de l’insertion au début d’un
ObservableCollection
. Pour plus d’informations, veuillez consulter la section GitHub #8370.
Rubriques connexes
- Dernières notes de version de la chaîne de prévisualisation pour le SDK d'application Windows
- Dernières notes de version de la chaîne expérimentale pour le SDK d'application Windows
- Installer des outils pour le SDK d’application Windows
- Créer votre premier projet WinUI 3 (SDK d’application Windows)
- Utiliser le SDK d’application Windows dans un projet existant
- Vue d’ensemble du déploiement
Windows developer