在我的项目中,我有一个定义一组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似乎不喜欢它,并且无论我在哪里尝试使用控件,都会出现“无效的XAML”错误。
你有解决方法吗?
答案 0 :(得分:1)
对于程序集中的每个CLR命名空间,您应该只使用一次XmlnsDefinitionAttribute。使用XmlnsCompatibleWithAttribute进行第2次和第3次分配。