在使用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

判断当前是否运行于Design Mode的更多相关文章

  1. NSIS:判断程序是否运行并进行卸载

    原文NSIS:判断程序是否运行并进行卸载 今天在评论里看到网友说要一个这样的功能,就简单写了一个,本来想做360杀手来着,但遗憾的是我从来不用360的东西,所在电脑上也没有360相关的软件进行测试,所 ...

  2. Linux 判断进程是否运行

    问题 linux平台 多人开发服务器,有时自己运行一个进程在服务器上,但未知原因导致停止运行了,需要添加一个定时任务,用于监控指定进程是否运行 方法 一个通用的方法,以便使用在不同项目中. 思路:定时 ...

  3. linux中 shell编程 判断服务是否运行

    判断nginx是否运行中: if ps -ef|grep "nginx"|egrep -v grep >/dev/null then echo ok! else echo n ...

  4. ServiceStatusUtils判断服务是否运行

    import android.app.ActivityManager; import android.app.Service; import android.content.Context; impo ...

  5. Python 打包程序判断是否已经运行

    代码如下: # -*- coding: UTF8 -*- from win32com.client import Dispatch import win32com import sys, os fro ...

  6. [转]判断程序是否运行在 Windows x64 系统下

    以下功能代码判断是否运行在 Windows x64 下.本例使用 Windows API 函数 IsWow64Process,具体请参考MSDN文档:http://msdn.microsoft.com ...

  7. Android——显示当前运行所有服务,判断服务是否运行

    1.显示系统当前所有运行服务: ActivityManager am = (ActivityManager) MainActivity.this.getSystemService(Context.AC ...

  8. 判断runtime是否运行在docker中及从docker中获取宿主机的ip信息

    1.判断运行时环境是否运行在docker中 参考:How to determine if a process runs inside lxc/Docker? 确定进程是否在LXC/Docker中运行? ...

  9. C# WINFORM判断程序是否运行,且只能运行一个实例(转)

    判断程序是否已经运行,使程序只能运行一个实例有很多方法,下面记录两种, 方法1:线程互斥 static class Program { private static System.Threading. ...

随机推荐

  1. sqlserver锁表、解锁、查看锁表

    sqlserver锁表.解锁.查看锁表 http://www.cnblogs.com/zfanlong1314/p/3698566.html http://www.cnblogs.com/chjf20 ...

  2. Combox和DropDownList控件的区别

    共同点:都是下拉框控件 不同点:Combox用在winform上,DropDownList用在网页上,且两者绑定方式略有不同 绑定数据例子如下—— 1.Combox绑定 DataTable dtBus ...

  3. Git版本管理:Windows下Git配置与使用指南

    简要介绍:Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理. 一.安装 软件:msysGit-fullinstall-1.8.1.2 打开之后设置安装路径,默认为 ...

  4. Form动态下拉框

    FORM级触发器:WHEN-NEW-FORM-INSTANCE   1.定义:      V_LIST_NAME11 VARCHAR2(100) := 'QUERY_FIND.UPDATE_TYPE' ...

  5. oracle 查詢表字段明細、字段注釋、表註釋

    查詢表字段明細 select  column_name,data_type,data_length,DATA_PRECISION ,DATA_SCALE from all_tab_columns wh ...

  6. URAL 1233 - Amusing Numbers

    首先计算出k至少为第几位,如果m小于这个数,那么输出0 还有一种情况, 就是10的i次方的这种情况,如果i+1等于m,那么直接输出k,否则输出0 其他的情况,就是二分,然后判断计算其插入到k之前的数的 ...

  7. Windows编写bat执行文件

    1:建立TXT文件 Rem nping用来测试IP地址的连通性 Rem nping --tcp -p 80 --flags rst --ttl 2 192.168.1.1 date 2:重命名为bat ...

  8. HDU 1695 GCD 容斥

    GCD 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=1695 Description Given 5 integers: a, b, c, d, k ...

  9. [C++基础]C++中静态成员函数如何访问非静态成员

    #include <iostream> /* 静态成员函数只能访问静态数据成员.静态成员函数和类以外的函数和数据,不能访问非静态数据成员,但静态成员函数或静态数据成员可由任意访问许可的函数 ...

  10. Android Checkbox Example

    1. Custom String 打开 “res/values/strings.xml” 文件, File : res/values/strings.xml <?xml version=&quo ...