Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Este tema le guía por el proceso de agregar compatibilidad básica para el Biblioteca de interfaz de usuario de Windows (WinUI) al proyecto de UWP de C++/WinRT. En concreto, este tema trata con WinUI 2, que es para aplicaciones para UWP. En el caso de las aplicaciones de escritorio, hay WinUI 3. Por cierto, WinUI está escrito en C++/WinRT.
Important
En el caso de las aplicaciones de escritorio, el SDK de Aplicaciones para Windows proporciona Biblioteca de interfaz de usuario de Windows (WinUI) 3. WinUI 3 no está pensado para trabajar con el tutorial de este tema, que es para UWP. Consulta también Migrar de UWP a la SDK de Aplicaciones para Windows.
Note
El kit de herramientas de Biblioteca de interfaz de usuario de Windows (WinUI) está disponible como paquetes NuGet que puede agregar a cualquier proyecto existente o nuevo mediante Visual Studio, como veremos en este tema. Para obtener más información sobre segundo plano, configuración y soporte técnico, consulte Introducción a la Biblioteca de interfaz de usuario de Windows.
Crear una aplicación en blanco (HelloWinUICppWinRT)
En Visual Studio, cree un nuevo proyecto para UWP con la plantilla de proyecto Aplicación en blanco (C++/WinRT) (para aplicaciones de escritorio de WinUI 3, use la plantilla Aplicación vacía, Empaquetada (WinUI 3 en escritorio). Asegúrese de que usa la plantilla (C++/WinRT) y no la (Windows universal).
Establezca el nombre del nuevo proyecto en HelloWinUICppWinRT y (para que la estructura de carpetas coincida con el tutorial) desactive Colocar solución y proyecto en el mismo directorio.
Instalar el paquete NuGet Microsoft.UI.Xaml
Haga clic en Project>Administrar paquetes NuGet...>Examinar, escriba o pegue Microsoft.UI.Xaml en el cuadro de búsqueda, seleccione el elemento en los resultados de búsqueda y, a continuación, haga clic en Instalar para instalar el paquete en su proyecto (también verá un aviso del contrato de licencia). Tenga cuidado de instalar solo el Microsoft. Interfaz de usuario. Paquete Xaml y no Microsoft. Interfaz de usuario. Xaml.Core.Direct.
Declaración de recursos de la aplicación WinUI
Abra App.xaml y pegue el marcado siguiente entre las etiquetas de apertura y cierre de aplicación existentes.
<Application.Resources>
<XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls"/>
</Application.Resources>
Agregar un control WinUI a MainPage
A continuación, abra MainPage.xaml. En la etiqueta de apertura Page ya existente hay algunas declaraciones de espacio de nombres XML. Agregue la declaración del espacio de nombres XML xmlns:muxc="using:Microsoft.UI.Xaml.Controls". A continuación, pegue el siguiente marcado entre las etiquetas de apertura y cierre existentes de Page, sobrescribiendo el elemento StackPanel existente.
<muxc:NavigationView PaneTitle="Welcome">
<TextBlock Text="Hello, World!" VerticalAlignment="Center" HorizontalAlignment="Center" Style="{StaticResource TitleTextBlockStyle}"/>
</muxc:NavigationView>
Edite pch.h, según sea necesario.
Cuando agrega un paquete NuGet a un proyecto de C++/WinRT (como el paquete Microsoft.UI.Xaml, que agregó anteriormente) y compila el proyecto, las herramientas generan un conjunto de archivos de encabezado de proyección en la carpeta \Generated Files\winrt de su proyecto. Si ha seguido el tutorial, ahora tendrá la carpeta \HelloWinUICppWinRT\HelloWinUICppWinRT\Generated Files\winrt. Para incluir esos archivos de encabezado en el proyecto, de modo que las referencias a esos nuevos tipos se resuelvan, puede ir al archivo de encabezado precompilado (normalmente pch.h) e incluirlos.
Solo debe incluir los encabezados correspondientes a los tipos que use. Pero este es un ejemplo que incluye todos los archivos de encabezado generados para el Microsoft. Interfaz de usuario. Paquete Xaml.
// pch.h
...
#include "winrt/Microsoft.UI.Xaml.Automation.Peers.h"
#include "winrt/Microsoft.UI.Xaml.Controls.h"
#include "winrt/Microsoft.UI.Xaml.Controls.Primitives.h"
#include "winrt/Microsoft.UI.Xaml.Media.h"
#include "winrt/Microsoft.UI.Xaml.XamlTypeInfo.h"
...
Editar MainPage.cpp
En MainPage.cpp, elimine el código dentro de la implementación de MainPage::ClickHandler, ya que myButton ya no está en el marcado XAML.
Ahora puede compilar y ejecutar el proyecto.