Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este tópico explica o processo de adição de suporte básico para o Biblioteca de interface do usuário do Windows (WinUI) ao seu projeto UWP do C++/WinRT. Especificamente, este tópico lida com o WinUI 2, que é para aplicativos UWP. Para aplicativos da área de trabalho, há o WinUI 3. Aliás, WinUI é escrito em C++/WinRT.
Important
Para aplicativos da área de trabalho, o SDK do Aplicativo Windows fornece Biblioteca de interface do usuário do Windows (WinUI) 3. O WinUI 3 não foi projetado para funcionar com as instruções passo a passo deste tópico, que se destinam à UWP. Consulte também Migrar da UWP para o SDK do Aplicativo Windows.
Note
O kit de ferramentas Biblioteca de interface do usuário do Windows (WinUI) está disponível como pacotes NuGet que você pode adicionar a qualquer projeto existente ou novo usando Visual Studio, como veremos neste tópico. Para obter mais informações de plano de fundo, configuração e suporte, consulte Introdução ao Biblioteca de interface do usuário do Windows.
Criar um aplicativo em branco (HelloWinUICppWinRT)
Em Visual Studio, crie um novo projeto UWP usando o modelo de projeto Aplicativo em Branco (C++/WinRT) (para aplicativos de desktop do WinUI 3, use o modelo Aplicativo em Branco, Empacotado (WinUI 3 em Desktop)). Verifique se você está usando o modelo (C++/WinRT) e não o modelo (Universal Windows).
Defina o nome do novo projeto como HelloWinUICppWinRT e (para que sua estrutura de pastas corresponda ao passo a passo) desmarque a solução Place e o projeto no mesmo diretório.
Instale o pacote NuGet Microsoft.UI.Xaml
Clique em Project>Manage Pacotes NuGet...>Navegue, digite ou cole Microsoft. UI. Xaml na caixa de pesquisa, selecione o item nos resultados da pesquisa e clique em Instalar para instalar o pacote em seu project (você também verá um prompt de contrato de licença). Tenha cuidado para instalar apenas o pacote Microsoft.UI.Xaml, e não Microsoft.UI.Xaml.Core.Direct.
Declarar recursos do aplicativo WinUI
Abra App.xaml e cole a marcação a seguir entre as tags Application de abertura e fechamento existentes.
<Application.Resources>
<XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls"/>
</Application.Resources>
Adicionar um controle WinUI ao MainPage
Em seguida, abra MainPage.xaml. Na tag Page de abertura existente, há algumas declarações de namespace XML. Adicione a declaração xmlns:muxc="using:Microsoft.UI.Xaml.Controls"de namespace xml. Em seguida, cole o código de marcação a seguir entre as tags de abertura e fechamento Page existentes, substituindo o elemento StackPanel existente.
<muxc:NavigationView PaneTitle="Welcome">
<TextBlock Text="Hello, World!" VerticalAlignment="Center" HorizontalAlignment="Center" Style="{StaticResource TitleTextBlockStyle}"/>
</muxc:NavigationView>
Edite pch.h, conforme necessário
Quando você adiciona um pacote NuGet a um projeto em C++/WinRT (como o pacote Microsoft.UI.Xaml, que você adicionou anteriormente) e compila o projeto, as ferramentas geram um conjunto de arquivos de cabeçalho de projeção na pasta \Generated Files\winrt do seu projeto. Se você seguiu o passo a passo, agora terá uma \HelloWinUICppWinRT\HelloWinUICppWinRT\Generated Files\winrt pasta. Para colocar esses arquivos de cabeçalhos em seu projeto, para que as referências a esses novos tipos sejam resolvidas, você pode entrar no arquivo de cabeçalho pré-compilado (normalmente pch.h) e incluí-los.
Você precisa incluir apenas os cabeçalhos que correspondem aos tipos que você usa. Mas aqui está um exemplo que inclui todos os arquivos de cabeçalho gerados do pacote Microsoft.UI.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
Em MainPage.cpp, exclua o código dentro da implementação de MainPage::ClickHandler, já que myButton não está mais no markup XAML.
Agora você pode compilar e executar o projeto.
Tópicos relacionados:
Windows developer