Notas de la versión de la biblioteca de interfaz de usuario de Windows 3 - Project Reunion 0.5, versión preliminar (marzo de 2021)

La biblioteca de interfaz de usuario de Windows (WinUI) 3 es una plataforma de experiencia de usuario (UX) nativa para crear aplicaciones universales de Windows modernas. Esta versión preliminar de WinUI 3 funciona tanto con las aplicaciones de escritorio/Win32 como con las aplicaciones para UWP, e incluye plantillas de proyecto de Visual Studio para ayudarle a dar los primeros pasos en la creación de aplicaciones con una interfaz de usuario basada en WinUI, así como un paquete NuGet que contiene las bibliotecas de WinUI.

WinUI 3 - Project Reunion 0.5 versión preliminar es la primera versión de WinUI 3 que se proporciona como parte del paquete de Project Reunion (ahora denominado Windows App SDK). Junto con ese cambio, esta versión preliminar contiene correcciones de errores críticos, una mayor estabilidad y algunas otras mejoras generales (consulte Funcionalidades introducidas en WinUI 3 - Project Reunion 0.5 versión preliminar).

Importante

Esta versión preliminar de WinUI 3 está pensada no solo para que se pueda realizar una evaluación temprana de la misma, sino también para recopilar comentarios de la comunidad de desarrolladores. No debe usarse para aplicaciones de producción.

Use el repositorio de GitHub de WinUI para proporcionar comentarios y registrar sugerencias y problemas.

Nota

Project Reunion es el nombre de código anterior para el SDK para aplicaciones de Windows. Esta documentación sigue utilizando Project Reunion al hacer referencia a versiones anteriores que usaban este nombre de código.

Instalación de WinUI 3 - Project Reunion 0.5 versión preliminar

Esta versión de WinUI 3 está disponible como parte de Project Reunion 0.5, versión preliminar.

Para instalarla, siga las instrucciones que se encuentran en Instalación de herramientas para canales experimentales y de versión preliminar del SDK de Aplicaciones para Windows.

A diferencia de las versiones preliminares anteriores de WinUI 3, esta vez descargará un paquete VSIX de Project Reunion en lugar de un paquete VSIX de WinUI. El VSIX de Project Reunion incluye plantillas de WinUI 3 en Visual Studio que usará para compilar la aplicación para WinUI 3. Una vez que haya completado la instalación, la experiencia de desarrollo de una aplicación WinUI 3 no debe variar.

Nota

También puede clonar y compilar XAML Controls Gallery de WinUI 3 versión preliminar.

Nota

Para usar las herramientas de WinUI 3, como Árbol visual dinámico, Recarga activa y Explorador de propiedades dinámico, debe habilitar las herramientas de WinUI 3 con las características de Visual Studio Preview, tal como se describe en estas instrucciones.

Una vez que haya configurado el entorno de desarrollo, consulte las plantillas de WinUI 3 en Visual Studio para familiarizarse con las plantillas de proyectos y de elementos de Visual Studio disponibles.

Para obtener más información sobre cómo empezar a trabajar con las plantillas de proyecto WinUI, consulte los siguientes artículos:

Además de las limitaciones y los problemas conocidos, compilar una aplicación con los proyectos WinUI es similar a compilar una aplicación para UWP con XAML y WinUI 2. Por lo tanto, se pueden aplicar la mayor parte de la documentación sobre las instrucciones de las aplicaciones para UWP y los espacios de nombres de WinRT de Windows.UI de Windows SDK.

La documentación de referencia de la API de WinUI 3 está disponible aquí: referencia de la API de WinUI 3.

Si creó un proyecto con WinUI 3 versión preliminar 4, puede actualizarlo para que use Project Reunion 0.5 versión preliminar.

WebView2

Para usar WebView2 con esta versión preliminar de WinUI 3, descargue Evergreen Bootstrapper o el instalador independiente de Evergreen que se encuentra en esta página si aún no tiene instalado el entorno de ejecución de WebView2.

Kit de la comunidad de Windows

Si usa Windows Community Toolkit, descargue la versión más reciente.

Compatibilidad de Visual Studio

Con el fin de aprovechar las últimas características de las herramientas agregadas a WinUI 3, como Recarga activa, Árbol visual dinámico y Explorador de propiedades dinámico, debe usar la versión preliminar más reciente de Visual Studio con la versión preliminar más reciente de WinUI 3, y asegurarse de habilitar las herramientas de WinUI en las características de Visual Studio Preview, según se describe en estas instrucciones. En la tabla siguiente se muestra la compatibilidad de las versiones futuras con WinUI 3 - Project Reunion 0.5 versión preliminar:

Versión de VS WinUI 3 - Project Reunion 0.5 versión preliminar
RTM 16.8 No
Versiones preliminares 16.9 Sí, con herramientas
RTM 16.9 Sí, pero sin Recarga activa, Árbol visual dinámico ni Explorador de propiedades dinámico
Versiones preliminares 16.10 Sí, con herramientas

Principales cambios introducidos en esta versión

  • WinUI 3 ahora se incluye como parte del paquete de Project Reunion, que también será el mecanismo con el que lanzaremos las futuras versiones compatibles.

  • Ahora se admite el efecto acrílico en la aplicación.

  • Ya no se admite el control Pivot y está en desuso en WinUI 3. Se recomienda usar el control NavigationView para los escenarios de navegación en la aplicación.

  • WinUI 3 y Project Reunion solo tendrán compatibilidad de nivel inferior a Windows 10, versión 1809, lo que requiere la compilación 17763 o posterior.

  • Las características en vista previa ahora están marcadas como experimentales.

    • Una característica en vista previa es cualquier cosa que seguirá siendo parte de las versiones preliminares de WinUI 3, pero no formará parte de la siguiente versión compatible de WinUI 3.
    • Las características en vista previa también incluyen a cualquier API experimental que forme parte de la versión preliminar de WinUI 2.6.
    • Al compilar una aplicación que usa una característica en vista previa, esta devolverá una advertencia.

Lista de errores corregidos en WinUI 3 - Project Reunion 0.5 versión preliminar

A continuación encontrará una lista de errores experimentados por los usuarios y que el equipo ha corregido desde la versión preliminar 3. También ha habido mucho trabajo en la estabilización circundante y en la mejora de las pruebas.

  • El mensaje de error WinUI 3 necesita reescribirse: "No se puede resolver 'Windows.metadata'. Instale el Kit de desarrollo de software de Windows. El Windows SDK se instala con Visual Studio".

  • La aplicación no responde a los cambios de tema en Windows cuando selecciona el tema predeterminado de Windows, sino hasta que se reinicia

  • Excepción en la llamada a XamlDirect.CreateInstance

  • El elemento ProgressBar no muestra la diferencia entre las opciones En pausa y Error

  • El control flotante del elemento de vista de lista StandardUICommand se muestra en la posición incorrecta.

  • Bloqueo en XamlControlsGallery de escritorio al intentar reordenar los elementos ListView con la función táctil

  • Mantener presionado el elemento RichTextBlock coloca el control flotante en el lugar equivocado

  • Las flechas izquierda/derecha no mueven el foco por los elementos RadioButton

  • El Narrador permanece en silencio cuando el usuario presiona las teclas flecha abajo/arriba para seleccionar el mes/año/fecha siguiente/anterior en DatePicker

  • El cierre del elemento por cambio de foco de NavigationView no funciona en WinUI 3

Nuevas características y capacidades introducidas en versiones preliminares anteriores de WinUI 3

Las siguientes características y funcionalidades se introdujeron en WinUI 3, versiones preliminares 1 a 4, y continúan siendo compatibles con WinUI 3 - Project Reunion 0.5 versión preliminar.

  • Capacidad para crear aplicaciones de escritorio con WinUI, incluido .NET para aplicaciones Win32
  • RadialGradientBrush
  • Actualizaciones de TabView
  • Actualizaciones de temas oscuros
  • Mejoras y actualizaciones para WebView2
    • Compatibilidad con valores altos de PPP
    • Compatibilidad con el cambio de tamaño y desplazamiento de ventanas
    • Actualizado para poder usar una versión más reciente de Edge
    • Desaparece la necesidad de hacer referencia a un paquete NuGet específico de WebView2
  • SwapChainPanel
  • Compatibilidad con MRT Core
    • Esto hace que las aplicaciones sean más rápidas y ligeras en el inicio y proporciona una búsqueda de recursos más rápida.
  • Compatibilidad con ARM64
  • Arrastrar y colocar dentro y fuera de las aplicaciones
  • RenderTargetBitmap (actualmente solo contenido XAML, sin contenido SwapChainPanel)
  • Compatibilidad con cursores personalizados
  • Entrada fuera de subproceso
  • Mejoras en nuestra experiencia del desarrollador o herramientas:
    • Árbol visual dinámico, recarga activa, explorador de propiedades dinámico y herramientas similares
    • IntelliSense para WinUI 3
  • Mejoras necesarias para la migración del código abierto
  • Funcionalidades de barra de título personalizadas: nuevas API Window.ExtendsContentIntoTitleBar y Window.SetTitleBar, que permiten a los desarrolladores crear barras de título personalizadas en aplicaciones de escritorio.
  • Compatibilidad con VirtualSurfaceImageSource

Comentarios y sugerencias

Agradecemos todos los comentarios que dejéis en el repositorio de WinUI de GitHub.

Limitaciones y problemas conocidos

La versión preliminar de WinUI 3 - Project Reunion 0.5 es solo eso, una versión preliminar. Los escenarios relativos a las aplicaciones de escritorio son particularmente nuevos. por lo que puedes encontrar errores, limitaciones y problemas.

Estos son algunos de los problemas conocidos que pueden aparecer en WinUI 3 - Project Reunion 0.5 versión preliminar. Si encuentra algún problema que no se muestra a continuación, háganoslo saber colaborando en un problema existente o presentando un nuevo problema en el repositorio de WinUI de GitHub.

Compatibilidad con la plataforma y el sistema operativo

WinUI 3 - Project Reunion 0.5 versión preliminar es compatible con equipos en los que se ejecuta la Actualización de octubre de 2018 de Windows 10 (versión 1809, compilación 17763), o cualquier versión más reciente.

Herramientas para desarrolladores

  • Solo se admiten las aplicaciones C# y C++/WinRT.
  • Las aplicaciones de escritorio admiten .NET 6 (y versiones posteriores) y C# 9, y se deben empaquetar en una aplicación MSIX.
  • Las aplicaciones para UWP admiten .NET Native y C# 7.3
  • Es posible que las herramientas de desarrollo e IntelliSense no funcionen correctamente en Visual Studio.
  • No existe compatibilidad con el Diseñador XAML.
  • No se admiten las nuevas aplicaciones escritas en C++/CX. Sin embargo, las aplicaciones existentes seguirán funcionando (es aconsejable empezar a usar  C++/WinRT lo antes posible)
  • La compatibilidad con varias ventanas en aplicaciones de escritorio está en desarrollo, pero aún no se ha completado y no es estable.
    • Envíe un error a nuestro repositorio si encuentra nuevos problemas o regresiones en el comportamiento de varias ventanas.
  • No se admite la implementación de dispositivos de escritorio sin empaquetar
  • Al ejecutar una aplicación de escritorio con F5, asegúrese de que está ejecutando el proyecto de empaquetado. Si presiona F5 en el proyecto de aplicación, se ejecutará una aplicación sin empaquetar, que ya no es compatible con WinUI 3.

Faltan características de la plataforma

  • Compatibilidad con Xbox
  • Compatibilidad con HoloLens
  • Elementos emergentes con ventanas
    • Más concretamente, la propiedad ShouldConstrainToRootBounds siempre actúa como si estuviera establecida en true, independientemente del valor de la propiedad.
  • Compatibilidad con entrada manuscrita
  • Acrílico
  • MediaElement y MediaPlayerElement
  • MapControl
  • RenderTargetBitmap para el contenido SwapChainPanel y no XAML
  • SwapChainPanel no admite la transparencia
  • Global Reveal usa el comportamiento de reserva, que es un pincel sólido
  • XAML Islands no se admite en esta versión
  • Las bibliotecas del ecosistema de terceros no funcionarán completamente
  • Los IME no funcionan
  • CoreWindow, ApplicationView, CoreApplicationView, CoreDispatcher y sus dependencias no se admiten en aplicaciones de escritorio (consulte a continuación).

CoreWindow, ApplicationView, CoreApplicationView y CoreDispatcher en aplicaciones de escritorio

Novedades de la versión preliminar 4 y estándar a partir de este momento, CoreWindow, ApplicationView, CoreApplicationView,CoreDispatcher y sus dependencias no están disponibles en aplicaciones de escritorio. Por ejemplo, la propiedad Window.Dispatcher siempre es NULL, pero se puede usar la propiedad Window.DispatcherQueue como alternativa.

Estas API solo funcionan en aplicaciones para UWP. En las versiones preliminares anteriores, también funcionaban parcialmente en aplicaciones de escritorio, pero en la versión preliminar 4 se deshabilitaron por completo. Estas API están diseñadas para el caso de UWP donde solo hay una ventana por subproceso, y una de las características de WinUI 3 es habilitar varias.

Hay API que dependen internamente de la existencia de estas API que, por tanto, no se admiten en una aplicación de escritorio. En general, estas API tienen un método GetForCurrentView estático. Por ejemplo UIViewSettings.GetForCurrentView.

Para obtener más información sobre las API afectadas, así como las soluciones alternativas y los reemplazos de dichas API, consulte los cambios de la API de WinRT para aplicaciones de escritorio.

Problemas conocidos

  • Hay un problema que hace que las aplicaciones para UWP no se inicien en Windows 10, versión 1809. El equipo está trabajando activamente para corregir este error en la siguiente versión preliminar.

  • Alt+F4 no cierra las ventanas de la aplicación de escritorio.

  • El evento UISettings.ColorValuesChanged y el evento AccessibilitySettings.HighContrastChanged ya no se admiten en las aplicaciones de escritorio. Esto puede generar problemas si los usa para detectar cambios en los temas de Windows.

  • Esta versión incluye algunas API experimentales que devolverán advertencias de compilación cuando se usen. El equipo no las ha probado exhaustivamente, y puede tener problemas desconocidos. Informe de un error en nuestro repositorio si encuentra algún problema.

  • Anteriormente, para obtener una instancia de CompositionCapabilities, llamaría a CompositionCapabilites.GetForCurrentView(). Sin embargo, las funcionalidades devueltas por esta llamada no dependían de la vista. Para abordar y reflejar esto, hemos eliminado el método estático GetForCurrentView() en esta versión, por lo que ahora puede crear un objeto CompositionCapabilties directamente.

  • En aplicaciones C# para UWP:

    El marco WinUI 3 es un conjunto de componentes de WinRT que se pueden usar de C++ (mediante C++/WinRT) o C# . Cuando se usa C#, hay dos versiones de .NET, en función del modelo de aplicación: cuando se usa WinUI 3 en una aplicación para UWP, se usa .NET Native y, cuando se usa en una aplicación de escritorio, se usa .NET 6 o versiones posteriores (y C#/WinRT).

    Cuando se usa C# para una aplicación WinUI 3 en UWP, hay algunas diferencias en el espacio de nombres de API en comparación con C# en una aplicación de escritorio WinUI 3 o C# en una aplicación WinUI 2: algunos tipos se encuentran en un espacio de nombres Microsoft, en lugar de un espacio de nombres System. Por ejemplo, en lugar de que la interfaz INotifyPropertyChanged se encuentre en el espacio de nombres System.ComponentModel, está en el espacio de nombres Microsoft.UI.Xaml.Data.

    Esto se aplica a lo siguiente:

    • INotifyPropertyChanged (y tipos relacionados)
    • INotifyCollectionChanged
    • ICommand

    Todavía existen las versiones del espacio de nombres System, pero no se pueden usar con WinUI 3. Esto significa que ObservableCollection no funciona como en C# de las aplicaciones para UWP de WinUI 3. Para obtener una solución alternativa, vea el ejemplo CollectionsInterop del ejemplo de XAML Controls Gallery.

Consulte la rama de XAML Controls Gallery de WinUI 3 versión preliminar para obtener una aplicación de ejemplo que incluye todos los controles y características que forman parte de WinUI 3 - Project Reunion 0.5 versión preliminar.

WinUI 3 Preview XAML Controls Gallery app
Ejemplo de la aplicación XAML Controls Gallery de WinUI 3 versión preliminar

Para descargar el ejemplo, clona la rama winui3preview mediante el siguiente comando:

git clone --single-branch --branch winui3preview https://github.com/microsoft/Xaml-Controls-Gallery.git

Después, asegúrate de cambiar a la rama winui3preview en el entorno de Git local:

git checkout winui3preview

Consulte también