2008-11-18 64 views
2

我正在处理一些Silverlight控件,我想明确处理它们在Blend中的显示方式。 具体来说,这些控件具有在运行时初始化的依赖关系,因此会在设计器中引发异常。但即使没有例外,我想让它们在Blend中以某种方式出现。Expression Blend 2中的Silverlight控件的设计时渲染

我知道这可能与WPF(使用myassembly.VisualStudio.Design.dll),但我一直没有能够找到与Silverlight做到这一点的信息。

我已经看到了黑客描述here,检查做到这一点:

bool designTime = (System.Windows.Browser.HtmlPage.IsEnabled == false); 

我虽然喜欢一个更明确的解决方案。

回答

4

how to deal with design time extensibility here有一个非常详细的帖子。在那里你会发现如何为Silverlight做Visual Studio和Blend设计时间。

控制供应商和编写自定义控件的人经常发现自己希望他们可以给自定义控件提供更好的体验。 但是,这方面的公众信息很少。我决定用这篇简短的50多页的文章来纠正这种情况。

就像我说的那样很长。 :)

+0

完美!谢谢! – 2008-11-19 01:51:57

2

的特定属性来检查是DesignerProperties

using System.ComponentModel.DesignerProperties 

if (DesignerProperties.GetIsInDesignMode(this)) 
{ 
} 

其中thisDependencyObject(任何视觉元素)。

+0

谢谢 - 我花了这么长时间才问在谷歌正确的问题得到这个答案... ;-) – Rashack 2010-08-19 07:25:54