IMPORTANT
Il y a une différence entre l'utilisation de Windows Forms ou de WPF !!
Ils ont des concepteurs différents et ont besoin de différents contrôles . De plus, c'est délicat lorsque vous mélangez des formulaires et des contrôles WPF. (par exemple, les contrôles WPF à l'intérieur d'une fenêtre Forms)
Si vous disposez uniquement de Windows Forms , utilisez ceci:
Boolean isInWpfDesignerMode = (LicenseManager.UsageMode == LicenseUsageMode.Designtime);
Si vous avez WPF uniquement , utilisez cette vérification:
Boolean isInFormsDesignerMode = (System.Diagnostics.Process.GetCurrentProcess().ProcessName == "devenv");
Si vous avez une utilisation mixte de Forms et WPF, utilisez une vérification comme celle-ci:
Boolean isInWpfDesignerMode = (LicenseManager.UsageMode == LicenseUsageMode.Designtime);
Boolean isInFormsDesignerMode = (System.Diagnostics.Process.GetCurrentProcess().ProcessName == "devenv");
if (isInWpfDesignerMode || isInFormsDesignerMode)
{
// is in any designer mode
}
else
{
// not in designer mode
}
Pour voir le mode actuel, vous pouvez afficher une MessageBox pour le débogage:
// show current mode
MessageBox.Show(String.Format("DESIGNER CHECK: WPF = {0} Forms = {1}", isInWpfDesignerMode, isInFormsDesignerMode));
Remarque:
Vous devez ajouter les espaces de noms System.ComponentModel et System.Diagnostics .
ISite.DesignMode
.