DesignMode Denetimleri ile
Herkes denetimleri geliştirirken DesignMode sorun için yararlı bir çözüm buldu?
Sorun eğer yuvayı kontrol ediyorsa o zaman DesignMode sadece ilk seviye için çalışıyor. İkinci ve daha düşük seviyeleri DesignMode her zaman FALSE döndürür.
Standart hack "Eğer gerçekten DOĞRU. böylece DesignMode studio olmalı" devenv.exe eğer çalıştığı sürece bakmak ve oldu
ProcessName arıyor ile bu sorunu bir şekilde kullanıcı adı işlem görmek için gerekli haklara sahip olmayabilirsiniz sonuç ile kayıt defteri ve diğer garip parçaları ile çalışır. Ayrıca bu garip yol çok yavaş. Bir singleton kullanmak için ek yığın kesmek zorunda kaldık ve eğer bir hata işlemi için adını sorarken atılır, sonra DesignMode YANLIŞ olduğunu varsayalım.
DesignMode belirlemek için temiz bir şekilde sırada bulunuyor. Acually Microsoft dahili çerçeve düzeltmesi daha iyi olurdu!
CEVAP
Bu soru, kaslı, şimdi de olduğu gibi bu işin, 5 farklı yollar izler: . keşfettim
System.ComponentModel.DesignMode property
System.ComponentModel.LicenseManager.UsageMode property
private string ServiceString()
{
if (GetService(typeof(System.ComponentModel.Design.IDesignerHost)) != null)
return "Present";
else
return "Not present";
}
public bool IsDesignerHosted
{
get
{
Control ctrl = this;
while(ctrl != null)
{
if((ctrl.Site != null) && ctrl.Site.DesignMode)
return true;
ctrl = ctrl.Parent;
}
return false;
}
}
public static bool IsInDesignMode()
{
return System.Reflection.Assembly.GetExecutingAssembly()
.Location.Contains("VisualStudio"))
}
Deneyin ve üç çözümleri üzerine asmak teklif almak için, küçük bir test çözümü için projeler hazırladım:
- TestApp (win uygulama),
- SubControl (dll)
- SubSubControl (dll)
Ben o SubControl içinde SubSubControl, TestApp her biri daha sonra gömülü.Form.
Bu ekran görüntüsü çalışırken sonucunu gösterir.
Bu ekranda Visual Studio açık: Bu form ile sonuç gösterir
Sonuç: bu gibi görünüyoryansıma olmadantek güvenilir olaniçindekurucu LicenseUsage ve güvenilir olan tek kişidirdışarıdakurucu 'İsDesignedHosted (BlueRaja aşağıda)'
WPF DesignMode özelliği var mı?...
Ne kadar doğru bir penceresinin altınd...
Ne kadar Kullanıcı denetimleri titreme...
Nasıl yakınlaştırma denetimleri ve web...
Ve nasıl o diğer denetimleri damla izi...