जरूरी
विंडोज फॉर्म या WPF का उपयोग करने का अंतर है !!
उनके पास अलग-अलग डिज़ाइनर हैं और अलग-अलग चेक की ज़रूरत है । इसके अलावा जब आप फ़ॉर्म और WPF नियंत्रणों को मिलाते हैं तो यह बहुत मुश्किल होता है। (उदा। प्रपत्र विंडो के अंदर WPF नियंत्रण)
यदि आपके पास केवल Windows प्रपत्र हैं , तो इसका उपयोग करें:
Boolean isInWpfDesignerMode = (LicenseManager.UsageMode == LicenseUsageMode.Designtime);
यदि आपके पास केवल WPF है , तो इस चेक का उपयोग करें:
Boolean isInFormsDesignerMode = (System.Diagnostics.Process.GetCurrentProcess().ProcessName == "devenv");
यदि आपके पास फ़ॉर्म और WPF का मिश्रित उपयोग है, तो इस तरह से एक चेक का उपयोग करें:
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
}
वर्तमान मोड देखने के लिए आप डिबगिंग के लिए एक संदेश बॉक्स दिखा सकते हैं:
// show current mode
MessageBox.Show(String.Format("DESIGNER CHECK: WPF = {0} Forms = {1}", isInWpfDesignerMode, isInFormsDesignerMode));
टिप्पणी:
आपको नामस्थानों को जोड़ने की जरूरत है । System.ComponentModel और System.Diagnostics ।
ISite.DesignMode
।