Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Visual Studio inclui um conjunto de ferramentas de execução que lhe permitem desenhar, iterar e inspecionar o seu XAML do WinUI 3 enquanto a sua aplicação está a correr. Usados em conjunto, dão-lhe um ciclo rápido de edição-recarga-inspeção que mostra a sua interface real — estilos reais, modelos de dados reais, animações reais — em vez de uma aproximação estática.
Nota
O Visual Studio XAML Designer (o separador de Design de arrastar e largar) não suporta atualmente projetos WinUI 3. Se abriu um .xaml ficheiro e só vê o editor XML, a sua instalação não está avariada — o designer não está disponível para o WinUI 3. O pedido de funcionalidade é acompanhado no Developer Community: Adicionar suporte ao XAML Designer para aplicações desktop do WinUI 3. Para obter contexto relativamente ao esforço de engenharia, consulte a discussão #4710 do WindowsAppSDK.
As ferramentas de execução descritas neste artigo são valiosas, esteja ou não disponível um designer. Este artigo explica o fluxo de trabalho.
O que vais usar
| Tool | O que faz | Como abrir |
|---|---|---|
| XAML Hot Reload | Aplica alterações XAML na aplicação em execução sem reiniciar | Automático — editar qualquer ficheiro .xaml ao depurar |
| Árvore Visual em Tempo Real | Mostra a árvore completa de elementos em tempo de execução e permite selecionar elementos na aplicação | Depuração>Windows> |
| Explorador de Propriedades Vivas | Mostra e permite editar todas as propriedades do elemento selecionado em tempo de execução | Depurar>Windows> |
| Pré-visualização em direto do XAML | Apresenta a tua aplicação em execução no Visual Studio para que a possas inspecionar sem alternar entre janelas | Depuração>Windows> |
Gorjeta
Dock Live Visual Tree e Live Property Explorer lado a lado. Em conjunto, dão-lhe uma vista de inspeção detalhada que mostra os valores reais em tempo de execução.
Prerequisites
- Visual Studio 2022 versão 17.0 ou posterior (XAML Hot Reload e Live Visual Tree estão incluídos).
- Um projeto WinUI 3 usando o SDK de Aplicações Windows. Veja Criar e executar um projeto WinUI 3 para criar um.
- O seu projeto deve direcionar-se para .NET 6 ou posterior (C#) ou usar C++/WinRT.
Passo 1: Inicie a sua aplicação sob o depurador
Pressiona F5 (ou Debug>Start Debug). O XAML Hot Reload ativa-se automaticamente quando o depurador se liga.
A barra de ferramentas XAML Hot Reload aparece na sobreposição dentro da aplicação. Se não o vires, verifica se a definição está ativada:
- Aceda a Ferramentas>Opções>>XAML Hot Reload.
- Confirme que Enable XAML Hot Reload está selecionada.
Importante
O XAML Hot Reload necessita do depurador. Executar sem depuração (Ctrl+F5) desativa o Hot Reload, o Live Visual Tree e o Live Property Explorer.
Passo 2: Editar o XAML e ver as alterações instantaneamente
Com a sua aplicação a funcionar, mude para qualquer .xaml ficheiro no editor e faça uma alteração — por exemplo, altere uma Background cor ou adicione uma nova Button. A aplicação de corrida atualiza em um ou dois segundos, sem reiniciar.
O que o Hot Reload pode e não pode fazer
O Hot Reload trata das edições mais comuns:
- Adicionar, remover ou reordenar elementos
- Alterar valores de propriedades (cores, margens, texto, tamanhos)
- Adição ou modificação de estilos e dicionários de recursos
- Alteração do conteúdo dos modelos de dados
Algumas alterações exigem um reinício:
- Adicionar novas classes, processadores de eventos no código subjacente ou alterações
x:Class - Modificação
App.xamlde dicionários fundidos (por vezes) - Alterar
x:Bindexpressões que referenciam novas propriedades
Quando o Hot Reload não consegue aplicar uma alteração, a barra de ferramentas mostra uma notificação. Basta reiniciar a aplicação para detetar essas alterações.
Para mais informações, consulte XAML Hot Reload.
Passo 3: Inspecionar a árvore visual e as propriedades
Abra a janela Live Visual Tree (Debug>Windows>Live Visual Tree). Esta janela mostra todos os elementos da árvore de interface da sua aplicação em execução, organizados por relações pai-filho.
Selecionar elementos visualmente
- Na barra de ferramentas Live Visual Tree , ativa Select Element na Aplicação em Execução (o botão da mira).
- Clique em qualquer elemento da sua aplicação em execução — a árvore navega para esse elemento e o Live Property Explorer mostra as respetivas propriedades.
Isto é o equivalente em tempo de execução a clicar num elemento numa superfície de design, exceto que reflete exatamente o que a sua aplicação renderiza, incluindo elementos criados dinamicamente em código.
Editar propriedades em tempo de execução
No Live Property Explorer, pode alterar os valores das propriedades em tempo real. Por exemplo:
- Muda a
Marginpara ajustar o espaçamento e vê o efeito imediatamente. - Define
VisibilityparaCollapsedtestar o que acontece quando um elemento está oculto. - Ajuste
WidthouHeightpara testar layouts responsivos.
Estas edições em tempo de execução não são guardadas no teu ficheiro XAML — são para experimentação. Quando encontrares valores de que gostas, escreve-os no teu .xaml ficheiro (onde o Hot Reload os detém e os torna permanentes).
Passo 4: Usar a Pré-visualização ao Vivo de XAML
XAML Live Preview apresenta a sua aplicação em execução num separador do Visual Studio, para que possa ver a aplicação e o seu código XAML lado a lado sem ter de alternar entre janelas.
Para o abrir: Debug>Windows>XAML Live Preview.
Isto é especialmente útil em configurações com um único monitor, em que alternar com Alt+Tab entre a aplicação e o Visual Studio é pouco prático.
Para mais informações, consulte a Pré-visualização ao Vivo de XAML.
Recomendado: Criar uma página de UI playground
Crie uma página dedicada ao playground no seu projeto — uma página cujo único propósito é permitir-lhe experimentar controlos, estilos e layouts. Isto dá-te um scratchpad que está sempre pronto para iteração visual, e combina especialmente bem com as ferramentas de runtime acima.
Montar o parque infantil
Clique com o botão direito do seu projeto no Explorador de Soluções e selecione Adicionar>Novo Item>Página em Branco (WinUI 3). Dê-lhe o nome de
UIPlayground.xaml.Em
UIPlayground.xaml, adicione umScrollViewercom secções para cada controlo ou padrão que queira experimentar:<Page x:Class="MyApp.UIPlayground" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <ScrollViewer Padding="24"> <StackPanel Spacing="24"> <!-- Section: Buttons --> <TextBlock Text="Buttons" Style="{StaticResource SubtitleTextBlockStyle}"/> <StackPanel Orientation="Horizontal" Spacing="8"> <Button Content="Standard"/> <Button Content="Accent" Style="{StaticResource AccentButtonStyle}"/> <ToggleButton Content="Toggle"/> <HyperlinkButton Content="Link" NavigateUri="https://learn.microsoft.com"/> </StackPanel> <!-- Section: Text input --> <TextBlock Text="Text input" Style="{StaticResource SubtitleTextBlockStyle}"/> <TextBox PlaceholderText="Type here..." Width="300" HorizontalAlignment="Left"/> <PasswordBox PlaceholderText="Password" Width="300" HorizontalAlignment="Left"/> <!-- Add more sections as needed --> </StackPanel> </ScrollViewer> </Page>Torna o parque infantil fácil de alcançar. Durante o desenvolvimento, defina-o como a página de arranque em
App.xaml.cs:// In App.xaml.cs, OnLaunched method — swap in for quick playground access: // rootFrame.Navigate(typeof(UIPlayground));Ou, se a tua aplicação usar um
NavigationView, adiciona um item de menu que só aparece nas compilações de depuração. Por exemplo, no code-behind da sua janela principal:// In your main window or shell page constructor, after InitializeComponent(): #if DEBUG NavView.MenuItems.Add(new NavigationViewItem { Content = "UI Playground", Tag = typeof(UIPlayground) }); #endifonde
NavViewé ox:Namedo controloNavigationView.
Como usar o parque infantil
- Prima F5 para iniciar a aplicação e navegue até à página do playground.
- Abra o ficheiro
.xamla par da aplicação em execução (ou utilize a Pré-visualização Dinâmica de XAML). - Adicione ou modifique controlos no editor XAML — o Hot Reload envia alterações instantaneamente.
- Use o Live Visual Tree para clicar nos controlos renderizados e inspecionar os seus valores reais de layout no Live Property Explorer.
- Quando estiveres satisfeito com o aspeto de um controlo, copia o XAML para a tua página real.
Este padrão dá-te um ciclo de "escrever-recarregar-inspecionar" — e como corre código real, vês modelos de dados reais, estilos reais e animações reais.
Comparação entre abordagens de tempo de projeto e de execução
Aqui está como as tarefas comuns de design de interface se mapeiam para as ferramentas de runtime:
| Task | Ferramenta de execução |
|---|---|
| Adicionar um controlo à página | Digite o elemento XAML — O IntelliSense completa a etiqueta e as propriedades necessárias |
| Pré-visualizar o controlo | Vê-o em direto na aplicação em execução com Hot Reload |
| Selecione um elemento a inspecionar | Utilize a Live Visual Tree> (retículo) |
| Visualizar ou editar propriedades | Utilize Live Property Explorer |
| Ajustar tamanho ou posição | Editar Width, Height, Margin no XAML ou no Live Property Explorer |
Dicas para um fluxo de trabalho eficiente
- Use a aplicação WinUI 3 Gallery. Instala-o a partir da Microsoft Store ou compila-o a partir do GitHub. Mostra todos os controlos do WinUI 3 com exemplos interativos e XAML pronto para cópia. Pensa nele como um catálogo visual que podes consultar antes de escrever XAML.
- Mantém a tua página de playground aberta. Trata isto como um guia de estilo vivo para a tua aplicação.
- Usar
d:DesignHeighted:DesignWidth. Mesmo sem o designer, estes atributos ajudam a IntelliSense e mantêm as suas páginas com um tamanho consistente quando as abre no editor. - Combinar com a janela de falhas de associações XAML. Abra-o em DebugWindows>> para detetar erros de associação que o designer nunca lhe teria mostrado.
- Usa o kit de ferramentas da comunidade. O Windows Community Toolkit fornece controlos e ajudantes que reduzem a quantidade de layout que precisa de programar manualmente.
Conteúdo relacionado
Windows developer