Compartir a través de


Notas de la versión del canal estable para el SDK de Aplicaciones para Windows 1.4

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:

Versión del canal estable más reciente:

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.4.6 (1.4.240512000)

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.4.

  • Se ha corregido un posible bloqueo al procesar la entrada.
  • Se ha corregido un problema por el que una operación de arrastrar y colocar que se iniciaba desde otra aplicación podía no permitir las operaciones de colocación de Copiar/Mover/Vincular correctas.
  • Se ha corregido la información del servidor de origen de WinUI para depurar para que apunte correctamente al repositorio de GitHub microsoft-ui-xaml.
  • Se ha corregido un problema con la corrección del problema 8857 de GitHub para combinar correctamente el elemento resources.pri de una biblioteca en el elemento resources.pri de la aplicación.

Versión 1.4.5 (1.4.240211001)

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.4.

  • Se ha corregido un problema que podía bloquear aplicaciones al hacer clic en un botón del mouse mientras se desplazaba con la rueda del mouse. Para más información, consulte el problema 9233 de GitHub.
  • Se ha corregido un problema con activos duplicados al hacer referencia a una cadena de paquetes NuGet. Para más información, consulte el problema 8857 de GitHub.
  • Se han corregido varios problemas de BreadcrumbBar incluida una pérdida de memoria, un bloqueo cuando el menú de tres puntos estaba vacío y el menú de tres puntos estaba incorrectamente limitado dentro de la ventana.
  • Se ha corregido un posible bloqueo durante el apagado al liberar recursos gráficos.

Versión 1.4.4 (1.4.231219000)

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.4.

  • Se ha corregido un problema de seguridad de diagnóstico de WinUI 3.
  • Se ha corregido un problema de entrada por el que el cuadro de contraseña no mostraba el teclado en pantalla cuando se activaba a través de la función táctil. Para obtener más información, consulte el problema 8946 de GitHub.
  • Se ha corregido un problema que provocaba que el tamaño del archivo Microsoft.UI.Xaml.Controls.dll aumentase inesperadamente.
  • Se ha corregido un problema CommandBarFlyout que podía provocar bloqueos al establecer el foco.
  • Se ha actualizado la compatibilidad del SDK de Aplicaciones para Windows con el control de recursos específico de RID de .NET 8.
  • Se ha corregido un problema por el que algunas cadenas de intercambio se colocaban o se estiraban incorrectamente.

Versión 1.4.3 (1.4.231115000)

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.4.

  • Se ha corregido un problema por el que un menú podía aparecer sin un fondo durante un breve período de tiempo.
  • Se ha corregido un bloqueo que puede producirse en escenarios específicos de varios monitores.
  • Se ha corregido un problema por el que un menú contextual podía aparecer fuera de la pantalla.
  • Se ha corregido un problema con los estilos de ventana y la acción de maximización. Para más información, consulte la incidencia n.º 8996 de GitHub.
  • Se ha corregido un problema con islas por el que el Asistente de concentración se podía agarrar inesperadamente de otro control.
  • Se ha corregido un problema con el orden de tabulación en NavigationView.
  • Se ha corregido un problema de representación por el que podía aparecer una barra blanca en la parte superior de la barra de título. Para más información, consulte la incidencia n.º 8947 de GitHub.
  • Varias correcciones de rendimiento.

Versión 1.4.2 (1.4.231008000)

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.4.

  • Se ha corregido un problema de bloqueo en explorer.exe causado por una asignación excesiva de memoria y objetos.
  • Se ha corregido un problema de interacción de la barra de título que impedía que el botón Atrás funcionara correctamente.
  • Se ha corregido un problema que provocaba la generación de una advertencia en caso de que un archivo de origen se incluyera varias veces.
  • Se ha corregido un problema que afectaba al rendimiento del menú contextual.
  • Se ha corregido un problema de acceso directo .lnk que hacía que el .exe de destino apuntase siempre a la misma ubicación para los paquetes de la carpeta WindowsApps.
  • Se ha corregido un problema de DWriteCore que afectaba a la representación adecuada del texto Indic en determinadas fuentes.
  • Se ha corregido un problema en una vista de lista que impedía la navegación con el teclado adecuada hacia y desde elementos seleccionados anidados con Tab/Mayús + Tab.
  • Se ha corregido un problema que interrumpía el desplazamiento de los elementos ComboBox al tocar después de expandir ComboBox una segunda vez. Para más información, consulte la incidencia n.º 8831 de GitHub.
  • Se ha corregido un problema por el que los paquetes WinAppSDK no incluían los recursos localizados de WinUI para algunos idiomas.
  • Se ha corregido una incoherencia entre la forma en que el Explorador de archivos y XAML muestran el idioma preferido de un usuario.
  • Se ha corregido un problema de diseño en el Explorador de archivos que provocaba que una línea delgada se mostrara debajo de la pestaña activa.
  • Se ha corregido un problema por el que algunos aceleradores de teclado proporcionados por el marco no se localizaban correctamente. Para más información, consulte la incidencia n.º 2023 de GitHub.
  • Se ha corregido un problema con los controles RepeatButton que se desplazaban repetidamente al pulsarlos.
  • Se ha corregido el .exe del instalador de WinAppSDK para que tenga la información correcta sobre la versión de los recursos.

Versión 1.4.1 (1.4.230913002)

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.4.

  • Se han corregido problemas de rendimiento para mejorar el tiempo hasta el primer fotograma.
  • Se ha corregido un problema por el que los menús no respetaba RequestedTheme. Por ejemplo, era posible que este problema provocara la aparición de texto blanco en un fondo blanco. Para más información, consulte el problema 8756 de GitHub.
  • Se ha corregido un problema que provocaba que los fondos acrílicos a veces se vuelvan totalmente transparentes en algunos menús.
  • Se ha corregido un problema por el que XAML a veces provocaba que Windows repintara innecesariamente el fondo de pantalla de escritorio.
  • Se ha corregido la compatibilidad con TabNavigation = Local y TabNavigation = Cycle para ListView y GridView, que ahora permite navegar entre encabezados y elementos con e l tabulador, además de las teclas de dirección.
  • Se han corregido algunas excepciones ruidosas al descartar una información sobre herramientas. Para más información, consulte el problema 8699 de GitHub.

Características nuevas y actualizadas y problemas conocidos de la versión 1.4

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

En una aplicación existente del SDK de Aplicaciones de Windows 1.3, puede actualizar el paquete NuGet a la versión 1.4.230822000 (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 más reciente.

Barra de título personalizada + Fusión de la barra de título de AppWindow

La barra de título personalizada de WinUI 3 usa la implementación de la barra de título de AppWindow, junto con las API NonClientInputPointerSource, en segundo plano en la SDK 1.4 de Aplicaciones de Windows. Como resultado, ambas implementaciones de la barra de título ahora se comportan del mismo modo con las mismas características y limitaciones. Esto es totalmente compatible con versiones anteriores en todos los casos admitidos: cualquier aplicación con una barra de título definida de forma personalizada se comportará como antes. Pero ahora es más fácil para los desarrolladores de WinUI 3 que no estén familiarizados con las barras de título personalizadas entenderlas y utilizarlas aprovechando estas nuevas características:

  • Un mejor escenario predeterminado en el que el desarrollador no define específicamente un elemento de barra de título (que reemplaza la barra de título de reserva de WinUI 2)
  • Distintas regiones de arrastre en la barra de título, que permiten crear varias regiones de arrastre y colocar controles sobre los que se puede hacer clic en cualquier parte del área no cliente (área de la barra de título).
  • Regiones arrastrables en toda la aplicación que pueden colocarse en cualquier lugar de la aplicación o hacer que toda la aplicación sea arrastrable.
  • Mejor soporte temático que sustituye a la tematización basada en recursos
    • Dado que las regiones de arrastre son transparentes, siguen el tema de la aplicación cada vez.
  • Más personalización: oculte los botones mín., máx. y cerrar; coloque iconos del sistema en la barra de título; o haga que diferentes regiones actúen como botones de subtítulo que reciben respuestas NCHITTEST.
  • Más libertad para el desarrollador que le permite combinar y coincidir con las API de la barra de título de AppWindow, como el uso de las API WinUI 3 de nivel superior para la mayoría de los escenarios, pero con las API de AppWindow mezcladas para el control de nivel inferior.

Actualizaciones de widgets

Se han añadido tres nuevas interfaces para que las implementen los proveedores de widgets: IWidgetProvider2, IWidgetProviderAnalytics y IWidgetProviderErrors. IWidgetProvider2 permite a los proveedores responder a la acción Personalizar invocada por el usuario, que es idéntica a la disponible para los widgets de 1ª parte. Los proveedores usan las IWidgetProviderAnalytics interfaces y IWidgetProviderErrors para recopilar datos de telemetría para sus widgets; los análisis y los eventos de error sobre los widgets se comunican a los respectivos proveedores de widgets. Las clases WidgetCustomizationRequestedArgs, WidgetAnalyticsInfoReportedArgs y WidgetErrorInfoReportedArgs se utilizan para comunicar información pertinente para admitir nuevas funcionalidades.

Islas XAML ya no es experimental.

Las islas XAML y la plataforma ContentIslands subyacente ya no son experimentales.

  • Actualmente, las islas XAML solo se prueban para su uso en aplicaciones de C++. Esta versión no incluye ningún elemento contenedor conveniente para su uso en WPF o WinForms.
  • DesktopWindowXamlSource y los tipos relacionados se han agregado en el espacio de nombres Microsoft.UI.Xaml.Hosting para islas XAML. XamlRoot.ContentIslandEnvironment se agregó para ayudar a acceder a la información subyacente de la isla para un elemento.
  • Se han introducido muchos tipos nuevos en el espacio de nombres Microsoft.UI.Content y en el espacio de nombres Microsoft.UI.Input como compatibilidad subyacente para islas XAML o para utilizar esta funcionalidad ContentIslands sin XAML.
  • Se ha agregado un nuevo DragDropManager (más tipos relacionados) en el espacio de nombres Microsoft.UI.Input.DragDrop para escenarios de isla.

ItemsView

Vamos a introducir un nuevo control de lista denominado y ItemsView una clase concreta ItemContainer correspondiente. ItemContainer es un contenedor ligero con estados de selección y objetos visuales integrados, que pueden ajustar fácilmente el contenido deseado y usarse con ItemsView para un escenario de control de colección.

  • El nuevo control ItemsView muestra una colección de datos. ItemsView es similar a los controles ListView y GridView, pero se compila utilizando los componentes ItemsRepeater, ScrollView, ItemContainer y ItemCollectionTransitionProvider. Ofrece la capacidad única de conectar implementaciones Layout o ItemCollectionTransitionProvider personalizadas. Otra ventaja clave es la capacidad de cambiar el diseño sobre la marcha mientras se conserva la selección de elementos. El control interno ScrollView también ofrece características no disponibles en el control ScrollViewerde ListView/GridView, como la capacidad de controlar la animación durante los desplazamientos mediante programación.
    • Una nueva propiedad ItemTransitionProvider en ItemsRepeater (y el nuevo control ItemsView) permite especificar un objeto ItemCollectionTransitionProvider para controlar las animaciones de transición en ese control. También se ha agregado un método CreateDefaultItemTransitionProvider a Layout, que permite que un objeto de diseño proporcione una transición de reserva que lo acompañe si no se proporciona una explícitamente en el control ItemsView.
    • Una nueva propiedad IndexBasedLayoutOrientation sobre Layout en la que la orientación del diseño, si existe, de los elementos se basa en su índice en la colección de origen. El valor predeterminado es IndexBasedLayoutOrientation.None. Los diseños personalizados establecen esta propiedad llamando al nuevo método SetIndexBasedLayoutOrientation (protegido).
    • Una nueva VisibleRect propiedad en VirtualizingLayoutContext obtiene el rectángulo de ventanilla visible dentro del FrameworkElement asociado a Layout. El método virtual VirtualizingLayoutContext.VisibleRectCore protegido se puede invalidar para proporcionar el valor que se devolverá de la propiedad VisibleRect.
  • La nueva clase LinedFlowLayout se usa normalmente para diseñar los elementos del control de colección ItemsView. Es especialmente útil para mostrar la colección de imágenes. Para ello, los coloca de izquierda a derecha y arriba abajo, en líneas de igual altura. Las imágenes llenan una línea horizontal y pasan a la siguiente. Las imágenes pueden recortarse por los bordes izquierdo y derecho para que quepan en una línea. También pueden expandirse horizontalmente y recortarse en los bordes superior e inferior para rellenar una línea cuando se emplea el modo de extensión.

Nuevas características de WinAppSDK

  • Una nueva clase ThemeSettings que permite a las aplicaciones Win32 WinRT detectar cuándo ha cambiado la configuración de alto contraste del sistema, similar a la clase AccessibilitySettings de UWP. Consulte la especificación de la API ThemeSettings en GitHub para obtener más información.
  • AccessKeyManager.EnterDisplayMode es un nuevo método para mostrar claves de acceso para el elemento enfocado actual de una raíz proporcionada. Las teclas de acceso están en "modo de visualización" al mostrar una sugerencia de teclas para invocar un comando, como presionar la tecla Alt en Paint para mostrar qué teclas corresponden a qué controles. Este método permite entrar mediante programación en el modo de visualización.
  • Application.ResourceManagerRequested proporciona un mecanismo para proporcionar un valor diferente IResourceManager para resolver los URI de recursos en escenarios en los que el valor predeterminado ResourceManager no funcionará. Para obtener más información, consulte la especificación de la API Application.ResourceManagerRequested en GitHub.
  • La versión del SDK de WebView2 se actualizó de 1661.34 a 1823.32.
  • Popup/FlyoutBase.IsConstrainedToRootBounds = false ahora se admite, lo que permite que un elemento emergente o control flotante se extienda fuera de los límites de la ventana primaria. Se ha agregado una propiedad SystemBackdrop a estos tipos para poder tener acrílicos en estas ventanas emergentes sin restricciones. Los menús usan esto de forma predeterminada para tener acrílico.
  • Closed, FrameworkClosed, y IsClosed se han agregado a DesktopAcrylicController y MicaController para mejorar el control durante el apagado de objetos o subprocesos.
  • DesktopAcrylicController.Kind ahora se puede establecer para elegir entre algunas apariencias acrílicas estándar.
  • DispatcherQueue tiene algunos nuevos eventos y asistentes para facilitar un cierre mejor organizado y para que las aplicaciones que utilizan Islas puedan ejecutar fácilmente un bucle de eventos estándar compatible.
  • InputNonClientPointerSource en el espacio de nombres Microsoft.UI.Input se puede utilizar para escenarios personalizados de barra de título para definir regiones de área que no sean cliente. El código puede registrarse para los eventos correspondientes, como los eventos "mantener el puntero y hacer clic" en eventos en estas regiones.
  • AppWindow tiene algunos nuevos asistentes para conseguir y asociar con un DispatcherQueue.
  • El nuevo evento TreeView.SelectionChanged permite a los desarrolladores responder cuando el usuario o el código subyacente cambian el conjunto de nodos seleccionados en el control TreeView.
  • El nuevo ScrollViewcontrol proporciona una nueva alternativa a ScrollViewer. Este nuevo control está muy alineado en cuanto al funcionamiento y la API con el control existente ScrollViewer, pero se basa en InteractionTracker, tiene nuevas características, como cambios de vista controladas por animaciones, y también está diseñado para garantizar la funcionalidad completa de ItemsRepeater. Vea Un ScrollViewer más flexible; incidencia n.º 108 microsoft/microsoft-ui-xaml (github.com) para obtener más detalles. Varios tipos nuevos, incluidos ScrollPresenter, forman parte del modelo general ScrollView.
  • El nuevo control AnnotatedScrollBar amplía la funcionalidad de una barra de desplazamiento normal proporcionando una manera fácil de navegar por una gran colección de elementos. Esto se logra a través de un raíl en el que se puede hacer clic con etiquetas que actúan como marcadores. También permite una comprensión más detallada del contenido desplazable mostrando información sobre herramientas al mantener el puntero sobre el raíl en el que se puede hacer clic.

Problemas conocidos

Correcciones de errores

  • Se ha corregido un problema por el que la llamada a la API Microsoft.Windows.AppLifecycle.AppInstance.Restart("") provocaba el bloqueo de las aplicaciones no empaquetadas. Para más información, consulte la incidencia 2792 de GitHub.
  • Se ha corregido un problema de bloqueo del instalador que se introdujo en la versión 1.4-experimental1. Para más información, consulte la incidencia n.º 3760 de GitHub.
  • Se ha corregido un problema por el que el texto tachado no se eliminaba correctamente en un TextBlock. Para más información, consulte la incidencia n.º 1093 de GitHub.
  • Se ha corregido un problema que provocaba una navegación incorrecta de Mayús + Tab en un Panel con TabFocusNavigation establecido en "Una vez". Para más información, consulte la incidencia n.º 1363 de GitHub.
  • Se ha corregido un problema en C++/WinRT que impedía que {x:Bind} funcionara correctamente con una propiedad de un control XAML con nombre. Para más información, consulte la incidencia n.º 2721 de GitHub.
  • Se ha solucionado un problema de AccessViolation en el entorno de ejecución en aplicaciones de escritorio WinUI causado por la configuración de DebugSettings.EnableFrameRateCounter = true. Para más información, consulte la incidencia n.º 2835 de GitHub.
  • Se ha corregido un problema por el que XamlTypeInfo.g.cpp no incluía los encabezados necesarios. Para más información, consulte la incidencia n.º 4907 de GitHub.
  • Se ha corregido un problema de bloqueo causado por la entrada simultánea multitáctil y mouse. Para más información, consulte la incidencia n.º 7622 de GitHub.
  • Se ha corregido un problema que impedía que una ventana de aplicación de WinUI 3 activa se desplazase cuando estaba activa la configuración del sistema para deshabilitar el desplazamiento de ventanas inactivas al pasar el mouse por encima. Para más información, consulte la incidencia n.º 8764 de GitHub.
  • Se ha corregido un bloqueo al probar la subclase MediaPlayerElement.
  • Se han corregido algunos problemas de pérdida de memoria y bloqueo en TreeView.
  • Se ha corregido un problema de bloqueo de la aplicación que podía producirse al usar el teclado para navegar por RadioButtons.
  • Se ha corregido un bloqueo al usar el teclado para navegar por PipsPager.
  • Se ha corregido el contenido de WebView2 para que se ajuste a la configuración de accesibilidad "Tamaño del texto" de la aplicación Configuración.
  • Se ha corregido un bloqueo que podía producirse cuando se ejecutaban animaciones con la pantalla apagada.
  • Se ha corregido un problema de rendimiento introducido en la versión 1.3 que agregaba una sobrecarga de ~10 % al primer diseño o representación.