在界面开发中,若在构造函数中增加了加载数据的代码,在设计界面时会出现界面打不开或者出现报错的情况。此时,可以检查一下是否为该情况。
Winform中的DesignMode判断
在WinForm开发中,一般会在窗体或者UserControl中判断当前是否为设计状态,如:
csharp
if (!this.DesignMode)
{
//
}
WPF中的DesignMode判断
WPF中提供你一个类似WinForm的DesignMode属性的方法来判断当前是否处于设计器模式:
csharp
bool IsInDesignMode
{
get { return DesignerProperties.GetIsInDesignMode(this); }
}
对于非UI对象,要判断是否处于设计器模式,则可以这么使用:
csharp
bool IsInDesignMode
{
get { return DesignerProperties.GetIsInDesignMode(new DependencyObject()); }
}
csharp
上述两种方式如果无法生效,可以选择下面的方式。无法生效的原因不清楚,有大佬知道可以评论区留言。
bool IsInDesignMode
{
get
{
return (bool)DesignerProperties.IsInDesignModeProperty
.GetMetadata(typeof(DependencyObject)).DefaultValue;
}
}
这种方式没有UI线程的限制,感觉也是最稳定的一种方式,平时选择可以用这种方式。