PENTING
Ada perbedaan dalam menggunakan Formulir Windows atau WPF !!
Mereka memiliki desainer yang berbeda dan membutuhkan pemeriksaan yang berbeda . Selain itu, sulit saat Anda mencampur formulir dan kontrol WPF. (misalnya kontrol WPF di dalam jendela Formulir)
Jika Anda hanya memiliki Formulir Windows , gunakan ini:
Boolean isInWpfDesignerMode = (LicenseManager.UsageMode == LicenseUsageMode.Designtime);
Jika Anda hanya memiliki WPF , gunakan pemeriksaan ini:
Boolean isInFormsDesignerMode = (System.Diagnostics.Process.GetCurrentProcess().ProcessName == "devenv");
Jika Anda memiliki penggunaan campuran Formulir dan WPF, gunakan tanda centang seperti ini:
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
}
Untuk melihat mode saat ini, Anda dapat menampilkan MessageBox untuk debugging:
// show current mode
MessageBox.Show(String.Format("DESIGNER CHECK: WPF = {0} Forms = {1}", isInWpfDesignerMode, isInFormsDesignerMode));
Ucapan:
Anda perlu menambahkan ruang nama System.ComponentModel dan System.Diagnostics .
ISite.DesignMode.