什么';s DesignerProperties.IsInDesignMode和DesignerPropartie
本文关键字:IsInDesignMode DesignerPropartie DesignerProperties 什么 | 更新日期: 2023-09-27 18:20:15
DesignerProperties
公开了与GetIsInDesignMode(element)
和IsInDesignTool
类似的两种设计状态。
- 它们之间有什么区别
- 为什么我应该使用其中一个而不是另一个
快速谷歌搜索显示IsInDesignTool似乎适用于Silverlight和ExpressionBlend。因此,也许IsInDesignMode是用于VS的,但其他VS则需要IsInDesignTool。
它们完全相同
IsInDesignTool
"如果元素在设计器的上下文中运行,则为true;否则为false"IsInDesignTool 的MDSDN
GetIsInDesignMode(元素)
"元素的IsInDesignMode属性值"GetIsInDesignMode(元素)的MDSDN
然而,Visual Studio每一次都会失败
DesignerProperties.GetIsInDesignMode(this)
所以最好使用
return DesignerProperties.GetIsInDesignMode(this) || DesignerProperties.IsInDesignTool;
如果你不想它崩溃。
用于Silverlight的.Net反射器
public static bool GetIsInDesignMode(DependencyObject element)
{
if (element == null)
{
throw new ArgumentNullException("element");
}
bool flag = false;
if (Application.Current.RootVisual != null)
{
flag = (bool) Application.Current.RootVisual.GetValue(IsInDesignModeProperty);
}
return flag;
}
public static bool IsInDesignTool
{
get
{
return isInDesignTool;
}
[SecurityCritical]
set
{
isInDesignTool = value;
}
}
internal static bool InternalIsInDesignMode
{
[CompilerGenerated]
get
{
return <InternalIsInDesignMode>k__BackingField;
}
[CompilerGenerated]
set
{
<InternalIsInDesignMode>k__BackingField = value;
}
}