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.
O WinUI 3 compartilha muitos conceitos XAML com WPF e é otimizado para experiências Windows modernas. A maioria dos padrões WPF tem equivalentes diretos no WinUI 3. Em algumas áreas, o WinUI 3 apresenta uma abordagem aprimorada que substitui um padrão mais antigo e, em alguns casos, os recursos ainda estão em desenvolvimento ativo.
Este tópico mapeia padrões comuns de WPF para seus equivalentes WinUI 3 para que você possa planejar sua migração.
Dica
Para obter orientações gerais sobre WPF + SDK do Aplicativo Windows, consulte Use o SDK do Aplicativo Windows em um projeto existente.
Controles
A maioria dos controles WPF tem equivalentes diretos no WinUI 3. A tabela a seguir aborda os controles em que o mapeamento não é um para um.
| controle WPF | WinUI 3 equivalente | Observações |
|---|---|---|
DataGrid |
Nenhum equivalente de origem própria | O WinUI 3 não inclui um DataGrid interno. O WinUI.TableView mantido pela comunidade é uma opção. Avalie projetos de comunidade com base em seus requisitos de suporte e manutenção. |
Ribbon |
CommandBar / Laboratórios de Ferramentas da Comunidade |
Considere CommandBar e CommandBarFlyout para cenários de estilo de barra de ferramentas. Um controle Ribbon também está disponível no Community Toolkit Labs (experimental). |
StatusBar |
InfoBar + layout personalizado |
Use o InfoBar para mensagens de status ou adicione uma área de rodapé dedicada ao seu layout. |
FlowDocumentReader / FlowDocumentScrollViewer |
RichTextBlock |
Use RichTextBlock para exibição de texto rico apenas leitura. O WinUI 3 adota uma abordagem diferente para o conteúdo do documento que é mais adequado para cenários de aplicativos modernos. |
PasswordBox com SecureString |
PasswordBox |
O PasswordBox do WinUI 3 fornece máscara de senha.
SecureString foi preterido no .NET 5+; a abordagem recomendada é minimizar por quanto tempo as credenciais são mantidas na memória usando padrões de ReadOnlySpan<char>. |
WebBrowser |
WebView2 |
WebView2 usa o mecanismo de Microsoft Edge (Chromium) moderno e é a abordagem recomendada para inserir conteúdo da Web em todos os tipos de aplicativos da área de trabalho. |
Recursos XAML
O WinUI 3 XAML usa os mesmos conceitos principais que WPF – dicionários de recursos, estilos, associação de dados e extensões de marcação funcionam da mesma forma. Alguns padrões específicos do WPF evoluíram para alternativas aprimoradas e mais componíveis.
| recurso WPF | Abordagem do WinUI 3 | Observações |
|---|---|---|
DataTrigger / MultiTrigger |
Comportamentos (Kit de Ferramentas da Comunidade) | O WinUI 3 usa comportamentos anexados em vez de gatilhos embutidos. O pacote de comportamentos XAML oferece suporte a DataTriggerBehavior, EventTriggerBehavior e muito mais. Os comportamentos são mais componíveis e testáveis unitariamente do que gatilhos do WPF. |
DynamicResource |
ThemeResource |
ThemeResource fornece pesquisa de recursos de runtime e responde automaticamente às alterações de tema (claro, escuro, alto contraste). Use StaticResource para valores que nunca são alterados no runtime. |
MultiBinding / PriorityBinding |
Conversores ou x:Bind |
Use um conversor de vários valores com associações individuais ou use x:Bind com uma propriedade computada em seu modelo de exibição.
x:Bind é compilado e seguro de tipo, o que o torna mais eficiente do que Binding. |
Style com BasedOn |
✅ Com suporte | Herança de estilo com BasedOn funciona no WinUI 3. |
| Estilos implícitos | ✅ Com suporte | Os estilos implícitos do dicionário de recursos (estilos sem x:Key) funcionam conforme o esperado. |
AdornerLayer |
Abordagem de sobreposição personalizada | O WinUI 3 não tem nenhuma camada de adorno equivalente. Use uma Canvas ou Grid sobreposição em seu layout para obter efeitos de decoração visuais semelhantes. Essa abordagem é mais explícita e fácil de raciocinar. |
Threading e expedição
| padrão de WPF | WinUI 3 equivalente | Observações |
|---|---|---|
Dispatcher.Invoke / BeginInvoke |
DispatcherQueue.TryEnqueue |
O WinUI 3 usa DispatcherQueue. O padrão assíncrono await DispatcherQueue.EnqueueAsync(...) usando a extensão Community Toolkit. |
Application.Current.Dispatcher |
DispatcherQueue.GetForCurrentThread() |
Capture o DispatcherQueue no momento da construção na thread da interface do usuário e armazene-o para uso posterior em threads de segundo plano. |
BackgroundWorker |
Task / async-await |
Padrões assíncronos de .NET modernos são a abordagem certa no WinUI 3.
Task, CancellationTokene IProgress<T> abrange todos os BackgroundWorker cenários e integra-se naturalmente com x:Bind. |
Modelo de aplicativo e ciclo de vida
| conceito de WPF | WinUI 3 equivalente | Observações |
|---|---|---|
Application.Startup
/
Exit Eventos |
App.OnLaunched / Window.Closed |
O WinUI 3 usa OnLaunchedApp.xaml.cs como ponto de entrada. O teardown por janela é tratado em Window.Closed. |
Application.Current.MainWindow |
Sua Window instância |
Mantenha uma referência à instância da sua janela em App.xaml.cs e exponha-a como uma propriedade. |
Window Subclassificação |
Personalização do AppWindow | As janelas do WinUI 3 são personalizadas através de AppWindow (barra de título, apresentador de janela, modos sobreposto/tela cheia/sobreposição compacta) em vez de subclasse. Consulte Gerenciar janelas do aplicativo. |
SystemParameters |
DisplayArea / UISettings |
As propriedades de exibição do sistema estão disponíveis por meio de DisplayArea e UISettings. |
Recursos e localização
| padrão de WPF | WinUI 3 equivalente | Observações |
|---|---|---|
.resx arquivos de recurso |
.resw + ResourceLoader |
O WinUI 3 usa .resw arquivos e a API do ResourceLoader . O Assistente de Atualização do .NET pode automatizar grande parte dessa conversão. |
x:Static Extensão de marcação |
x:Bind para uma propriedade estática |
Use x:Bind com uma propriedade estática ou um acessador singleton.
x:Bind é compilado e produz mensagens de erro mais claras do que x:Static. |
| Dicionários de recursos mesclados | ✅ Com suporte |
ResourceDictionary.MergedDictionaries funciona no WinUI 3. |
| Dicionários de recursos específicos do tema | ✅ Com suporte |
ResourceDictionary.ThemeDictionaries é o mecanismo WinUI 3 para recursos por tema e integra-se com a alternância automática de modo escuro/claro. |
Impressão
| recurso WPF | Status do WinUI 3 | Observações |
|---|---|---|
PrintDialog / PrintDocument |
PrintManager | O suporte completo à impressão está disponível por meio de PrintManager. Consulte Impressão a partir do seu aplicativo. |
Ferramentas para desenvolvedores
| ferramentas de WPF | Status do WinUI 3 | Observações |
|---|---|---|
| Designer XAML (guia Design) | Ainda não suportado | O Designer XAML do Visual Studio atualmente não dá suporte a projetos WinUI 3. XAML Recarga Dinâmica é suportado e é a maneira recomendada de iterar sobre estilos e layout sem interromper o depurador. |
| Blend para Visual Studio | ⚠️ Suporte limitado | O Blend é fornecido com o Visual Studio e pode abrir projetos do WinUI 3. A Estrutura de Tópicos do Documento XAML é funcional, mas o modo design não está disponível para WinUI 3. |
Consulte também
Windows developer