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:
- Si quiere actualizar una aplicación existente de una versión anterior del SDK de aplicaciones de Windows a una versión más reciente, consulte Actualización de proyectos existentes a la versión más reciente del SDK de aplicaciones de Windows.
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.7 (1.4.240802001)
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
ItemsRepeater
el que no generaría suficientes elementos si estuviera en unShouldConstrainToRootBounds="false"
elemento emergente que fuera más alto o más ancho que la ventana principal. - Se ha corregido un posible bloqueo al apagar si una
AnnotatedScrollBar
actualización de etiqueta estaba pendiente.
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 elementoresources.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
yTabNavigation = Cycle
paraListView
yGridView
, 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 controlesListView
yGridView
, pero se compila utilizando los componentesItemsRepeater
,ScrollView
,ItemContainer
yItemCollectionTransitionProvider
. Ofrece la capacidad única de conectar implementacionesLayout
oItemCollectionTransitionProvider
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 internoScrollView
también ofrece características no disponibles en el controlScrollViewer
deListView
/GridView
, como la capacidad de controlar la animación durante los desplazamientos mediante programación.- Una nueva propiedad
ItemTransitionProvider
enItemsRepeater
(y el nuevo controlItemsView
) permite especificar un objetoItemCollectionTransitionProvider
para controlar las animaciones de transición en ese control. También se ha agregado un métodoCreateDefaultItemTransitionProvider
aLayout
, 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 controlItemsView
. - Una nueva propiedad
IndexBasedLayoutOrientation
sobreLayout
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 esIndexBasedLayoutOrientation.None
. Los diseños personalizados establecen esta propiedad llamando al nuevo métodoSetIndexBasedLayoutOrientation
(protegido). - Una nueva
VisibleRect
propiedad enVirtualizingLayoutContext
obtiene el rectángulo de ventanilla visible dentro delFrameworkElement
asociado aLayout
. El método virtualVirtualizingLayoutContext.VisibleRectCore
protegido se puede invalidar para proporcionar el valor que se devolverá de la propiedadVisibleRect
.
- Una nueva propiedad
- La nueva clase
LinedFlowLayout
se usa normalmente para diseñar los elementos del control de colecciónItemsView
. 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 diferenteIResourceManager
para resolver los URI de recursos en escenarios en los que el valor predeterminadoResourceManager
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 propiedadSystemBackdrop
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
, yIsClosed
se han agregado aDesktopAcrylicController
yMicaController
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 unDispatcherQueue
.- 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 controlTreeView
. - El nuevo
ScrollView
control proporciona una nueva alternativa aScrollViewer
. Este nuevo control está muy alineado en cuanto al funcionamiento y la API con el control existenteScrollViewer
, pero se basa enInteractionTracker
, tiene nuevas características, como cambios de vista controladas por animaciones, y también está diseñado para garantizar la funcionalidad completa deItemsRepeater
. Vea Un ScrollViewer más flexible; incidencia n.º 108 microsoft/microsoft-ui-xaml (github.com) para obtener más detalles. Varios tipos nuevos, incluidosScrollPresenter
, forman parte del modelo generalScrollView
. - 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
- Cuando se usa
ExtendsContentIntoTitleBar = true
, los clics en la esquina superior izquierda de la ventana siempre muestran, de manera predeterminada, el menú de la ventana del sistema (Minimizar/Cerrar/etc.) en lugar de permitir que el puntero entre en el contenido de la ventana. Esto, por ejemplo, significa que un botón Atrás de esa área de la barra de título no funcionará. Una solución alternativa para este problema es establecerAppWindow.TitleBar.IconShowOptions = Microsoft.UI.Windowing.IconShowOptions.HideIconAndSystemMenu
en el elemento AppWindow de la ventana. - Hay algunas nuevas excepciones continuas al ocultar elementos emergentes o controles flotantes de
ShouldConstrainToRootBounds="False"
. Esto incluye ocultar información sobre herramientas, como se indica aquí: Descarte de información sobre herramientas produce 4 excepciones nativas; incidencia n.º 8699 · microsoft/microsoft-ui-xaml (github.com) - Enç1.4, los botones de subtítulo mín/máx/cerrar para
ExtendsContentIntoTitleBar = true
ahora se dibujan mediante AppWindow en lugar de XAML. Esto es por diseño, pero puede afectar a las aplicaciones que reemplazaban los estilos internos de XAML para ocultar o realizar una personalización adicional de estos botones, como en este informe: No se puede ocultar botón de subtítulo en la barra de título; incidencia n.º 8705 · microsoft/microsoft-ui-xaml (github.com) - En .NET 8 se ha producido un cambio importante en la forma de controlar el gráfico de identificadores en tiempo de ejecución: [Cambio importante]: Los proyectos orientados a .NET 8 y posteriores utilizarán de manera predeterminada un gráfico RID más pequeño y portátil; incidencia nº. 36527 - dotnet/docs (github.com). Debido a este problema y a que .NET 8 aún no se ha publicado oficialmente, el SDK 1.4 de Aplicaciones de Windows no es compatible oficialmente con .NET 8. Sin embargo, si desea seguir teniendo como destino la versión preliminar de .NET 8 con esta versión del SDK de aplicaciones, se recomiendan los pasos siguientes:
- Se recomienda establecer UseRidGraph en true. También deberá actualizar la propiedad
<RuntimeIdentifiers>
del archivo.csproj
a<RuntimeIdentifiers>win-x86;win-x64;win-arm64</RuntimeIdentifiers>
, así como actualizar cada archivoPropeties\*pubxml
para cambiar dewin10
awin
en la propiedad<RuntimeIdentifier>
(por ejemplo,<RuntimeIdentifier>win-x86</RuntimeIdentifier>
).
- Se recomienda establecer UseRidGraph en true. También deberá actualizar la propiedad
- Con el SDK 1.4 de Aplicaciones de Windows, el destino
GenerateDeploymentManagerCS
deMicrosoft.WindowsAppSDK.DeploymentManager.CS.targets
se cambió aGenerateBootstrapCS
. - El fondo
MenuFlyout
no utiliza el tema solicitado de la aplicación:- El texto menuFlyoutItem no se sincroniza con el tema del sistema. · Incidencia n.º 8678 · microsoft/microsoft-ui-xaml (github.com)
- Versión preliminar 1.4: el tema de fondo flotante se deriva del tema del sistema y no de su elemento asociado; incidencia n.º 8756 microsoft/microsoft-ui-xaml (github.com)
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.
Temas relacionados
- Notas de la versión del canal de versión preliminar más reciente para el SDK de Aplicaciones para Windows
- Notas de la versión del canal experimental más reciente para el SDK de Aplicaciones para Windows
- Instalación de herramientas para el SDK de Aplicaciones para Windows
- Creación del primer proyecto de WinUI 3 (SDK de Aplicaciones para Windows)
- Uso del SDK de Aplicaciones para Windows en un proyecto existente
- Descripción general de la implementación