Winform和WPF中关于是否处于设计模式的判断方式

在界面开发中,若在构造函数中增加了加载数据的代码,在设计界面时会出现界面打不开或者出现报错的情况。此时,可以检查一下是否为该情况。

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线程的限制,感觉也是最稳定的一种方式,平时选择可以用这种方式。
相关推荐
zjnlswd4 小时前
C#学习笔记4
笔记·学习·c#
曹牧6 小时前
C#:List<string>特定格式输出
windows·c#
Z5998178417 小时前
c#软件开发学习笔记--Modbus-TCP/UDP网口通讯
笔记·学习·c#
曹牧8 小时前
C#:取的多个药品批准文号中的一个
c#
用户2986985301411 小时前
3 种方法,轻松将 PowerPoint 转换为 PDF 格式
人工智能·后端·c#
SamChan9011 小时前
FastAPI+Celery+Redis搭建企业级PDF翻译异步任务系统
redis·后端·python·pdf·wpf·fastapi
KindSuper_liu12 小时前
HybridCLR DHE及MetaVersion工作流核心概念
c#
淡海水12 小时前
01-08-运行时-虚方法分派与接口调用的底层实现
linux·windows·microsoft·c#·虚方法·vtable·vsd
李高钢12 小时前
C# WPF Prism 进阶(三):导航(Navigation)深入
开发语言·c#·wpf
我是苏苏13 小时前
C#基础:不写for循环的五种方式
数据结构·算法·c#