J'ai posté un commentaire à Microsoft que les boîtes de dialogue dans WPF ne sont pas activées par VisualStyle.
Joe Castro a posté une solution de contournement que je ne comprends pas vraiment comment réaliser, quelqu'un peut-il m'aider ?
Voici sa réponse :
Pour des raisons de compatibilité, les applications n'utilisent pas par défaut la version 6 des contrôles communs du système (disponibles depuis XP). Cela ne s'applique pas vraiment à WPF, mais on ne le voit que dans quelques situations lors de l'utilisation des contrôles natifs, donc ce n'est pas aussi répandu que WinForms où leurs APIs ne font qu'envelopper les contrôles standards.
Pour résoudre ce problème dans WPF, vous devez explicitement opter pour la version 6 de comctl32 en le spécifiant dans un manifeste de votre exe. Cela doit être fait dans l'exe, WPF ne peut donc pas le faire dans le cadre de ses DLL. EnableVisualStyles le fait au moment de l'exécution, mais cette méthode est généralement meilleure.
Par exemple, quelque chose comme :
<?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>