Pergunta

Eu postei um comentário para a Microsoft que as caixas de diálogo no WPF não estão ativadas pelo VisualStyle.

Joe Castro postou uma solução alternativa lá que eu realmente não entendo como alcançar, alguém pode ajudar?

Aqui está sua resposta:

Por motivos de compacto do aplicativo, os aplicativos não usam, por padrão, o V6 dos controles comuns do sistema (disponível desde o XP). Isso realmente não se aplica ao WPF, mas você também o vê em algumas situações ao usar os controles nativos, para que não seja tão prevalente quanto o WinForms, onde suas APIs estão apenas envolvendo os controles padrão.

Para corrigir isso no WPF, você precisa optar explicitamente ao V6 COMCTL32, especificando-o em um manifesto em seu exe. Isso deve ser feito no EXE, para que o WPF não possa fazer isso como parte de suas DLLs. EnableVisualStyles faz isso em tempo de execução, mas dessa maneira geralmente é melhor.

Por exemplo, algo como:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<description>MyExe.exe</description>
<dependency>
    <dependentAssembly>
     <assemblyIdentity
         type="win32"
         name="Microsoft.Windows.Common-Controls"
         version="6.0.0.0"
         processorArchitecture="*"
         publicKeyToken="6595b64144ccf1df"
         language="*"/>
    </dependentAssembly>
</dependency>
</assembly>

Outras dicas

No Visual Basic, as propriedades do projeto são estruturadas de maneira um pouco diferente. Se você encontrar esta pergunta e está em VB no VS2010, siga estas instruções para gerar um App.Manifest Arquivo.

  1. Para criar um App.Manifest Arquivo, vá para o seu projeto e selecione Propriedades. Em seguida, clique em Exibir as configurações da janela, debaixo de Inscrição aba.
    • ViewWindowSettings
  2. Isso deve gerar e abrir o App.Manifest arquivo, que é salvo em seu Minha pasta de projeto
    • app.manifest

Leitura adicional: Estilo de janela WPF MessageBox

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top