使用Blend自定义XmlnsDefinition

时间:2009-08-20 07:28:47

标签: wpf blend

在我的项目中,我有一个定义一组WPF控件的程序集。我希望能够使用它们而无需在XAML代码中明确引用程序集。这就是我使用自定义XmlnsDefinition:

的原因
[assembly: XmlnsDefinition(
    "http://schemas.microsoft.com/winfx/2006/xaml/presentation",
    "MyProject.Common.WpfLibrary.Markup")]
[assembly: XmlnsDefinition(
    "http://schemas.microsoft.com/winfx/2007/xaml/presentation",
    "MyProject.Common.WpfLibrary.Markup")]
[assembly: XmlnsDefinition(
    "http://schemas.microsoft.com/winfx/2008/xaml/presentation",
    "MyProject.Common.WpfLibrary.Markup")]

它就像VS2008中的魅力一样。我可以直接使用Markup命名空间中定义的控件。然而,Blend似乎不喜欢它,并且无论我在哪里尝试使用控件,都会出现“无效的XA​​ML”错误。

你有解决方法吗?

1 个答案:

答案 0 :(得分:1)

对于程序集中的每个CLR命名空间,您应该只使用一次XmlnsDefinitionAttribute。使用XmlnsCompatibleWithAttribute进行第2次和第3次分配。