Compartir a través de


Notas de la versión del canal estable más reciente para el SDK de Aplicaciones para Windows

El canal estable proporciona versiones del SDK de aplicaciones de Windows compatibles con el uso de aplicaciones en entornos de producción. Las aplicaciones que usan la versión estable del SDK de aplicaciones de Windows también se pueden publicar en Microsoft Store.

Vínculos importantes:

Archivo de notas de la versión del canal estable:

Descargas para el SDK de Aplicaciones para Windows

Nota:

Las extensiones de Visual Studio (VSIX) del SDK de Aplicaciones para Windows ya no se distribuyen como descarga independiente. Están disponibles en Visual Studio Marketplace dentro de Visual Studio.

Versión 1.5

Versión 1.5.5 (1.5.240627000)

Se trata de una versión de mantenimiento del SDK de aplicaciones de Windows que incluye correcciones de errores críticos de la versión 1.5.

  • Se ha corregido un posible bloqueo durante la carga de imágenes cuando se cambia el origen de la imagen antes de que se complete la carga.
  • Se ha corregido un posible bloqueo al usar InputNonClientPointerSource.
  • Se ha corregido un problema por el que una ventana que solo contiene un control WebView2 no establece correctamente el foco inicial del teclado en WebView2, lo que deja que el teclado y las herramientas de accesibilidad lo puedan usar. Para obtener más información, consulte Problema de GitHub WebView2Feedback#2330.

Versión 1.5.4 (1.5.240607001)

Se trata de una versión de mantenimiento del SDK de aplicaciones de Windows que incluye correcciones de errores críticos de la versión 1.5.

  • Se ha corregido un problema con la corrección del problema 8857 de GitHub para combinar correctamente los recursos de una biblioteca.pri en resources.pri de la aplicación.
  • Se ha corregido un problema que provocaba que WebView2 enviara eventos adicionales blur y focus en cada clic. Para obtener más información, consulte el problema de GitHub n.º 9288. Esto también corrige problemas con las listas desplegables que no responden, como se muestra en el problema de GitHub n.º 9566.
  • Se ha corregido un problema por el que la creación de una nueva ventana o un elemento emergente cancelaban cualquier operación de arrastrar en curso. Para obtener más información, consulte El problema de GitHub n.º 9360.
  • Se ha corregido un problema por el que los archivos SVG que definen un cuadro de vista negativo ya no se representan. Para obtener más información, consulte El problema de GitHub n.º 9415.
  • Se ha corregido un problema por x:Bind el que no se compruebaba null antes de usar una referencia débil, lo que podía provocar un bloqueo. Para obtener más información, consulte Problema de GitHub n.º 9551.
  • Se ha corregido un problema por el que un cursor de cambio de tamaño se mostraba incorrectamente en los bordes de la barra de título cuando se maximizaba una ventana, lo que también provocaba un comportamiento incorrecto al hacer clic o arrastrar en esas áreas. Para obtener más información, consulte el problema de GitHub n.º 8665.

Versión 1.5.3 (1.5.240428000)

Se trata de una versión de mantenimiento del SDK de aplicaciones de Windows que incluye correcciones de errores críticos de la versión 1.5.

  • Se ha corregido un problema por el que, a veces, ItemsRepeater hacía que su ventana pasara a primer plano.
  • Se ha corregido un posible bloqueo cuando se actualizaba el estado de transparencia de AcrylicBrush.
  • Se ha corregido un problema por el que ItemsRepeater no generaba suficientes elementos si se encontraba en una ventana emergente ShouldConstrainToRootBounds="false" era más alta o más ancha que la ventana principal.
  • Se ha corregido un problema por el que podía producirse el error MSB4086 en tiempo de compilación si el archivo de proyecto no especificaba una TargetPlatformVersion. Este error se detectó como parte del problema n.º 9531 de GitHub.

Versión 1.5.2 (1.5.240404000)

Se trata de una versión de mantenimiento del SDK de Aplicaciones para Windows que incluye correcciones de errores críticos para la versión 1.5 y una nueva característica para los proveedores de fuentes de widgets.

Actualizaciones del proveedor de fuentes de widgets

  • Los proveedores de fuentes ahora pueden mostrar anuncios en el panel de widgets:
    • La nueva API FeedManager.TryShowAnnouncement permite a un proveedor de fuentes solicitar que el panel de widgets muestre sus anuncios. Para mostrar el anuncio, cree un objeto FeedAnnouncement y llame a la API FeedManager.TryShowAnnouncement.
    • Los anuncios de fuentes tendrán sus propios distintivos mostrados en la barra de tareas, que se pueden personalizar mediante la API FeedAnnouncement.
  • Los proveedores de fuentes ahora pueden optar por recibir información de análisis e informes de errores sobre su proveedor a medida que un usuario interactúa con él. Para aceptarlo, implemente las interfaces IFeedProviderAnalytics y/o IFeedProviderErrors de su proveedor.

Las actualizaciones del proveedor de fuentes incluyen las siguientes API nuevas:

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

Corrección de errores

  • Se ha corregido un problema por el que DispatcherTimer no se activaba en el momento correcto si la pantalla principal no se estaba ejecutando a 60 Hz.
  • Se ha corregido un problema por el que una ventana del editor de métodos de entrada (IME) de cuadro de texto se colocaba incorrectamente al ejecutarse en un factor de escala distinto del 100 %. Para más información, consulte el problema 9382 de GitHub.
  • Se ha corregido un problema por el que una operación de arrastrar y colocar iniciada desde otra aplicación podía no permitir las operaciones de colocación de Copiar/Mover/Vincular correctas.
  • Se ha corregido un posible bloqueo al restablecer un ItemsSource de ListView y resaltarlo inmediatamente.
  • Se ha corregido un problema por el que los elementos emergentes o los controles flotantes de ShouldConstrainToRootBounds="false" no aplican ninguna transformación de escala heredada. Para obtener más información, consulte las incidencias de GitHub N.º 9118 y N.º 9433.
  • Se ha corregido un posible bloqueo cuando un objeto Composition se destruye con una animación que todavía se está ejecutando.
  • Se ha corregido un posible bloqueo al apagar en NavigationView::RevokeNavigationViewItemRevokers.

Versión 1.5.1 (1.5.240311000)

Se trata de una versión de mantenimiento del SDK de aplicaciones de Windows que incluye correcciones de errores críticos de la versión 1.5.

  • Se ha corregido un problema por el que las aplicaciones autocontenidas podían no crearse debido a que no se podía copiar "map.html".
  • Se ha corregido un problema por el que MapControl no se inicializaba debido a la rechazo de tokens válidos. Para más información, consulte el problema 9324 de GitHub.
  • Se ha corregido un problema por el que MapControl se cargaba con un fondo azul. Para más información, consulte el problema 9377 de GitHub.
  • Se ha corregido un problema por el que al hacer clic en el contenido adicional de un NavigationViewItem botón no se expandía ni se contraía correctamente con un solo clic. Esto también hacía que los menús se mostraran en blanco al hacer clic en el botón de contenido adicional en el modo PaneDisplayMode="Top". Para obtener más información, consulte las incidencias de GitHub N.º 9423 y N.º 9426.
  • Se ha corregido un problema por el que al tocar NavigationViewItem con entrada táctil o lápiz impedía que el elemento respondiera a cualquier entrada futura. Para más información, consulte el problema 9429 de GitHub.
  • Se ha corregido un bloqueo al hacer clic en un elemento del área NavigationView.PaneFooter. Para más información, consulte el problema 9396 de GitHub.
  • Se ha corregido un problema por el que los iconos de los menús a veces se mostraban en el lugar incorrecto. Para más información, consulte el problema 9409 de GitHub.
  • Se ha corregido un problema por el que el acrílico no se mostraba en los menús hasta que se salía de la ventana y se volvía a ella. Para más información, consulte el problema 9406 de GitHub.
  • Se ha corregido un bloqueo que podía producirse durante la inicialización de TextBox/RichEditBox. Para más información, consulte el problema 9216 de GitHub.
  • Se han corregido algunas excepciones ruidosas que NavigationView lanzaba y capturaba con la destrucción.
  • Se ha corregido un problema por el que un gesto de "reducir o ampliar" a veces se mostraba como un movimiento panorámico o de toque debido a un desencadenamiento incorrecto del mensaje PointerCaptureLost.

Versión 1.5

En las secciones siguientes se describen las características nuevas y actualizadas y los problemas conocidos de la versión 1.5.

En una aplicación existente del SDK de aplicaciones de Windows 1.4, puede actualizar el paquete NuGet a la versión 1.5.240227000 (consulte la sección Actualización de un paquete en Instalación y administración de paquetes en Visual Studio mediante el Administrador de paquetes NuGet).

Para obtener actualizaciones del entorno de ejecución y MSIX, consulte Descargas del SDK de aplicaciones de Windows.

Actualizaciones de apagado y tiempo de ejecución de islas XAML

Hay una diferencia de funcionamiento entre WinAppSDK 1.4 y WinAppSDK 1.5 para aplicaciones basadas en islas XAML cuando se cierra la última ventana XAML en cualquier subproceso.

  • En WinAppSDK 1.4, el tiempo de ejecución de XAML siempre sale del bucle de eventos del subproceso cuando se cierra la última ventana XAML de un subproceso.
  • En WinAppSDK 1.5:
    • Si la aplicación es una aplicación de escritorio de WinUI, el funcionamiento predeterminado sigue siendo el mismo que en WinAppSDK 1.4.
    • Si usa XAML para la API DesktopWindowXamlSource ("Islas XAML"), el funcionamiento predeterminado es ahora que XAML no sale automáticamente del bucle de eventos del subproceso.
    • En ambos modos, puede cambiar este funcionamiento configurando la propiedad Application.DispatcherShutdownMode.

Para obtener más información, consulte la documentación de la propiedad Application.DispatcherShutdownMode cuando esté disponible. Esto completa la propuesta de GitHub N.º 8492.

Hay una diferencia de funcionamiento entre WinAppSDK 1.4 y WinAppSDK 1.5 para aplicaciones basadas en islas XAML durante el período de tiempo de ejecución de XAML:

  • En WinAppSDK 1.4, el tiempo de ejecución de XAML se apaga en un subproceso si todos los objetos WindowsXamlManager y DesktopWindowXamlSource de un subproceso determinado están cerrados o apagados, o si DispatcherQueue se ejecuta en ese subproceso (en este caso, el tiempo de ejecución de XAML se apaga durante la fase DispatcherQueue.FrameworkShutdownStarting).
  • En WinAppSDK 1.5, el tiempo de ejecución de XAML se apaga en un subproceso solo cuando se apaga DispatcherQueue que se ejecuta en ese subproceso (el tiempo de ejecución de XAML siempre se apaga durante la fase DispatcherQueue.FrameworkShutdownStarting).

Para obtener más información, consulte la documentación de la clase WindowsXamlManager cuando esté disponible.

Hay una diferencia de funcionamiento en WindowsXamlManager.InitializeForCurrentThread():

  • En WinAppSDK 1.4, WindowsXamlManager.InitializeForCurrentThread() devuelve una instancia única de un objeto WindowsXamlManager con cada llamada.
  • En WinAppSDK 1.5, WindowsXamlManager.InitializeForCurrentThread() devuelve una instancia existente si ya existe en el subproceso. Close/Dispose() ahora se omite.

Control de Mapas de WinUI

El control WinUI Maps ya está disponible. Este control se basa en WebView2 y Azure Maps, y proporciona las siguientes características:

  • Movimiento panorámico y zoom con los botones de mapa o la función táctil.
  • Cambio del estilo del mapa a satélite, terreno o vista de calle.
  • Adición mediante programación al mapa de chinchetas interactivas con iconos personalizables por los desarrolladores.
  • Personalización por parte del desarrollador de dónde se centra el mapa en la carga inicial.
  • Control para desarrolladores sobre la ocultación o visualización de los botones de movimiento panorámico, zoom y estilos de mapa.

Control Maps de WinUI 3

Nota:

Para usar el control Maps, necesitará una clave de Azure Maps. Para crear la clave, consulte la página de documentación de Azure Maps sobre cómo crear una aplicación web.

El control Maps es totalmente nuevo y agradecemos sus comentarios para evaluar su futura dirección.

Nuevo control SelectorBar

En la versión 1.5, hemos agregado un nuevo control SelectorBar para permitir que los usuarios cambien entre varias vistas de datos. Este control se conocía anteriormente como "SegmentedControl" en nuestra hoja de ruta 1.5.

Control SelectorBar de WinUI 3

Etiquetas en los comandos principales CommandBarFlyout

Los elementos visuales del CommandBarFlyout se han actualizado para que se vean una etiqueta de texto de los elementos del área de comandos principal si la propiedad Label ha cambiado a AppBarButton. Anteriormente, en los comandos principales del área CommandBarFlyout solo aparecía un icono, pero ahora pueden salir un icono y una etiqueta para mejorar la facilidad de uso.

Etiquetas CommandBarFlyout de WinUI 3

Compatibilidad de WebView2 con el entorno o las opciones personalizados

El control WinUI WebView2 ahora presenta la opción de personalizar el objeto subyacente CoreWebView2 con un CoreWebView2Environment y CoreWebView2ControllerOptions personalizado. Esto permite al creador de la aplicación indicar una ruta alternativa desde la que cargar WebView2Runtime, elegir usar un userDataFolder diferente UserDataFolder o configurar opciones como IsPrivateModeEnabled y ScriptLocale.

Soporte para .NET 8

Se ha añadido más soporte a .NET 8 en una versión de mantenimiento reciente de la versión 1.4, pero que sigue manteniendo la advertencia sobre el uso de RID específicos de la plataforma. En la versión 1.5, hemos completado ese trabajo para que la advertencia ya no aparezca.

Depuración mejorada y disponibilidad de origen

Ahora insertamos información del servidor de origen de Github para el código en el repositorio microsoft-ui-xaml en nuestros símbolos públicos, lo que permite a los depuradores descargar automáticamente el código fuente. También hemos realizado otras correcciones y mejoras en nuestros símbolos en todo winAppSDK para mejorar el sistema de depuración.

Funcionalidad mejorada para depurar ciclos de diseño

Los ciclos de diseño de depuración en una aplicación WinUI pueden ser un desafío, por lo que en la versión 1.5 el objeto DebugSettings ahora presenta opciones para permitir un registro mejorado y puntos de interrupción para el proceso de diseño y así facilitar la depuración y corrección de ciclos de diseño en la aplicación.

Otras características nuevas de WinAppSDK

  • Se ha agregado compatibilidad con el modelo de implementación PublishSingleFile. Para obtener más información sobre PublishSingleFile, consulte la documentación de implementación de un solo archivo.
  • Se han agregado mejoras a la compatibilidad del lector de pantalla, la compatibilidad con el escalado de texto y otras características de accesibilidad.
  • Diferentes mejoras de estabilidad y rendimiento a partir de las incidencias de error pendientes de GitHub con prioridad.

Las nuevas características se publican de forma separada

Las nuevas versiones de las plantillas de Visual Studio de WinAppSDK para C# y C++ se publican a través de Visual Studio Marketplace y aparecerán unas semanas después de la versión 1.5. Con la nueva versión, las plantillas ahora se pueden publicar independientemente de las versiones de WinAppSDK, lo que nos aporta mucha más flexibilidad a la hora de distribuir actualizaciones a los clientes.

Otras características previstas anteriormente

En la versión 1.5, hemos progresado en las siguientes características que anunciamos en nuestra hoja de ruta, pero no las completamos. Seguirán implementándose en el calendario de la hoja de ruta 1.6.

  • Ventanas con pestañas
  • Compatibilidad con Arrastrar n-colocar para WebView2
    • Para aclararlo, en la versión 1.5 se admite la arrastrar a WebView2, como arrastrar un PNG desde Explorador de archivos a Bing para Visual Search. El trabajo está en curso en la versión 1.6 para admitir el arrastre fuera de WebView2.
  • Investigaciones sobre la vista de tabla y los controles de entrada de lápiz

La iluminación dinámica se ha quitado de la hoja de ruta por el momento.

Problemas conocidos

  • Al usar bibliotecas que contienen recursos como archivos .xaml, puede que se genere un mensaje de error en tiempo de ejecución que indique que no se pueden encontrar esos recursos. En este caso, podría ser necesario insertar <ShouldComputeInputPris>true</ShouldComputeInputPris> en el archivo del proyecto para asegurarse de que esos recursos se incluyen.
  • Al hacer clic en el contenido adicional de un NavigationViewItem, ya no se expande o se oculta correctamente con un solo clic. Al hacer doble clic, sigue funcionando, al igual que al hacer clic en otra parte del NavigationViewItem.

Corrección de errores

  • Se ha corregido un problema por el que StackPanel se aplicaba el espaciado en los elementos ocultos. Para más información, consulte el problema 916 de GitHub.
  • Se han corregido problemas con los controles de desplazamiento que dejaban de funcionar después de cerrar otra ventana de la aplicación. Para obtener más información, consulte las incidencias de GitHub N.º 9292 y N.º 9355.
  • Se ha subsanado un bloqueo al cambiar DebugSettings.EnableFrameRateCounter a true antes de representar el primer fotograma. Para más información, consulte la incidencia n.º 2835 de GitHub.
  • Se ha corregido un posible error de compilación en C++ en el que algunos encabezados no incluían las dependencias necesarias. Tenga en cuenta que el cambio del orden #include podría afectar a algunas aplicaciones, como que posiblemente provocaría un error de compilación de IInspectable si la aplicación usa una versión de C++/WinRT anterior a 2023. Para más información, consulte el problema 9014 de GitHub.
  • Se ha corregido un problema por el que ElementName los enlaces no funcionaban dentro de ItemsRepeater DataTemplate. Para más información, consulte el problema 560 de GitHub.
  • Se han subsanado bloqueos al ejecutar una aplicación en Visual Studio con la barra de herramientas con la aplicación habilitada. Se necesita Visual Studio 17.8 Preview 2 o posterior para recibir todas las correcciones. Para más información, consulte el problema 8806 de GitHub.
  • Se ha corregido un problema por el que AnnotatedScrollbar podía bloquearse a veces al desplazarse rápidamente.
  • Se ha corregido un problema por el que el texto del menú a veces se truncaba.
  • Se ha corregido un problema por el que los consejos didácticos no se enfocaban correctamente. Para más información, consulte el problema 3257 de GitHub.
  • Se ha corregido un problema que bloqueaba la aplicación al establecer TailVisibility de TeachingTip en Contraído al iniciarse. Para más información, consulte el problema 8731 de GitHub.
  • Se ha corregido un problema con el modo en que se administraban los archivos PRI al usar bibliotecas. Para más información, consulte el problema 8857 de GitHub.
  • Se ha corregido un problema de la versión 1.5-experimental2 en la que no se generaba el archivo DLL de proyección. Para más información, consulte el problema 4152 de GitHub.
  • Se ha corregido un problema por el que el botón de puntos suspensivos en el elemento emergente de formato de texto de RichEditBox no mostraba correctamente la lista de acciones. Para más información, consulte el problema 9140 de GitHub.
  • Se ha corregido un problema por el que ListView no administraba correctamente las teclas de método abreviado del teclado. Para más información, consulte el problema 8063 de GitHub.
  • Se ha corregido un problema de infracción de acceso con el uso de AccessKey para cerrar una ventana. Para más información, consulte el problema 8648 de GitHub.
  • Se ha subsanado un bloqueo al usar una AccessKey para cerrar una ventana. Para más información, consulte el problema 9002 de GitHub.
  • Se ha corregido un problema que afectaba a la alineación del texto en un MenuFlyoutItem dentro de MenuBar. Para más información, consulte el problema 8755 de GitHub.
  • Se ha corregido un problema por el que el texto resaltado no permanecería resaltado al hacer clic con el botón derecho. Para más información, consulte el problema 1801 de GitHub.
  • Se ha corregido un problema que provocaba que las ventanas inactivas bloquearan la aplicación al cerrarse. Para más información, consulte el problema 8913 de GitHub.
  • Se ha corregido un problema que podía bloquear las aplicaciones al desplazarse con el botón central del mouse y hacer clic con el botón izquierdo inmediatamente después. Para más información, consulte el problema 9233 de GitHub.
  • Se ha corregido un problema que provocaba que las aplicaciones se bloquearan al iniciarse al usar un NavigationViewItem personalizado. Para más información, consulte el problema 8814 de GitHub.
  • Se ha corregido un problema de NavigationView por el que el botón de puntos suspensivos generaba un error incorrectamente. Para más información, consulte el problema 8380 de GitHub.
  • Se ha corregido un problema por el que SystemBackdrop no se representaba correctamente en una aplicación de varias ventanas. Para más información, consulte el problema 8423 de GitHub.
  • Se ha corregido un problema de duplicación al insertar en el principio de ObservableCollection Para más información, consulte el problema 8370 de GitHub.