在使用Visual Studio设计XAML时,设计器运行在[设计时]状态。VS在内部运行这些代码,帮你把界面的类真实效果展示出来。一般情况下也不会有什么问题,但是当代码中存在外部资源时,XAML可能工作并不正常——比如设计了一个状态指示器,该指示器连接了硬件传感器,需要实时查询传感器状态,并且该传感器需要透过C++库进行查询。那么在设计时,XAML的预运行会导致包含了自定义控件的窗口或者页面显示不正常。因为该自定义控件运行时需要1,外部硬件传感器;2,需要外部DLL。

当XMAL设计器不能正常工作室,会对工作造成影响。可以在代码中加入判断机制,检测当前是否运行于设计时,来解决这个问题。其中主要用到了DesignerProperties 这个类。DesignerProperties 提供用于与设计器进行通信的附加属性,可用于查询控件在设计器中运行时的状态的附加属性。设计器工具将为在设计器中运行的对象上的属性设置值。

 

//desgin in time
var designTime = System.ComponentModel.DesignerProperties.GetIsInDesignMode(this);
if (designTime)return;
//~ d

reference:

[1]Detect Design Time Mode in WPF,  http://www.codeproject.com/Tips/61858/Detect-Design-Time-Mode-in-WPF

[2]DesignerProperties, https://msdn.microsoft.com/zh-cn/library/system.componentmodel.designerproperties(v=vs.110).aspx

转载于:https://www.cnblogs.com/jjseen/p/5311130.html

判断当前是否运行于Design Mode相关推荐

  1. Python时间序列模型推理预测实战:时序推理数据预处理(特征生成、lstm输入结构组织)、模型加载、模型预测结果保存、条件判断模型循环运行

    Python时间序列模型推理预测实战:时序推理数据预处理(特征生成.lstm输入结构组织).模型加载.模型预测结果保存.条件判断模型循环运行 目录

  2. Android之通过ActivityLifecycleCallbacks判断程序是否运行在后台

    1.问题 判断程序是否运行在后台运行 2.解决办法 我们可以使用ActivityLifecycleCallbacks,对于ActivityLifecycleCallbacks,看我的这篇博客介绍() ...

  3. (C++)wchar_t 转 string / TCHAR转为char/判断是否进程运行/获得目标进程的入口

    首先是wchar_t转string void Wchar_tToString(string& szDst, wchar_t* wchar) {wchar_t* wText = wchar;DW ...

  4. boost thread 判断是否正在运行_java高端基础:Thread源码解读

    阅读本篇文章之前建议先了解线程的生命周期以及状态之间的可能的转换 Java高端基础:线程的生命周期 wait() 使当前线程等待,直到其他线程调用该对象的notify()或者notifyAll()方法 ...

  5. 三十八、判断服务是否运行及定位问题

    /** * 判断服务是否正在运行 * * @param context * @param className 判断的服务名字:包名+类名 * @return true在运行 false 不在运行*/p ...

  6. 如何判断 Linux 是否运行在虚拟机上

    在 WebHostingTalk 论坛上有些国外奸商会把虚拟机当作独立服务器卖,去年7月份的时候就有一位中国同胞上当受骗,并在 WHT 上发帖声讨,证据确凿,甚至连服务商自己也承认,回帖达355篇.这 ...

  7. android5.0以后获取应用运行状态,Android判断App前台运行还是后台运行(运行状态)...

    本文通过图文并茂的方式给大家介绍android判断app状态的相关内容,具体详情如下所示: 要了解这块,首先需要明白一些概念,app,process,task 1.process就是进程,是linux ...

  8. Android判断Service是否运行

    /*** 用来判断服务是否运行.* @param context* @param className 判断的服务名字* @return true 在运行 false 不在运行*/public stat ...

  9. 判断程序是否运行在虚拟机中的代码

    首先我们要了解一下什么是虚拟机, 对虚拟机的通用解释是通过软件模拟的具有完整硬件系统功能的, 运行在一个完全隔离环境中的完整计算机系统. 通过虚拟机软件, 你可以在一台物理计算机上模拟出一台或多台虚拟 ...

最新文章

  1. PostgreSQL 编译安装
  2. DPDK 大页内存原理(二十一)
  3. Jobdu 1005
  4. 使用卡尔曼滤波器进行回声消除
  5. 智方8000系医疗器械销售管理系统 免费
  6. 在禁用uac_如何(真正)在Windows 7上完全禁用UAC
  7. 前端网页水印实现方法
  8. 记一次Prometheus完整监控案例
  9. 电磁场仿真试验【Matlab】电磁波极化仿真
  10. 图片懒加载(仿SDWebImage)
  11. 程序的两种执行方式,静态语言和脚本语言
  12. 图解HTTPS非/对称加密,CA证书流程
  13. android用来管理通知,Android 中通知的基本使用
  14. 陪诊服务系统源码,可以在线预约陪诊师的软件平台
  15. python(2)提取多层嵌套列表里子元素的最大值
  16. Android必知必会-自定义Scrollbar样式
  17. 蚂蚁金服准备上市,财务自由的声音还是躺赚的落幕?
  18. UG NX 12 模型显示基本操作
  19. iFLEX-Viper™是一款紧凑型多波长合束激光器,使用单模光纤耦合输出。最多将5钟波长(405, 4...
  20. 评测丨用数字带你综合体验海思Hi3519A开发板性能

热门文章

  1. 【转载】使用Epoll的框架例子二
  2. LeetCode5. 最长回文子串
  3. 根据周次显示日期范围_Elasticsearch根据日期价格范围搜索酒店且排序
  4. 12 java基础之继承:override(覆盖重写)
  5. 第一款Layer 2钱包Rollups Wallet已上线苹果AppStore
  6. NFT去中心化自治组织YGG完成130万美元融资,Delphi Digital领投
  7. 数据:2020年加密货币领域风险投资超过30亿美元
  8. SAP License:SAP中的成本核算模型(调侃版)
  9. SAP License:SAP财务管理的认识
  10. Alibaba分层领域模型规约