我遇到的情况与这里相同:
WPF Custom Namespaces not working
XmlnsDefinition仅适用于其他程序集中的名称空间,不适用于 相同的程序集。
但是,我并没有真正理解“相同的程序集”和“不同的程序集”的确切含义。如果AssemblyInfo.cs和XAML文件位于同一程序集中,如何将AssemblyInfo.cs从该程序集中移到另一个程序中?
答案 0 :(得分:1)
文档中没有提及任何此类限制。
将CLR命名空间映射到部件中的XML命名空间
WPF定义XAML处理器使用的CLR属性,以将多个CLR名称空间映射到单个XAML名称空间。此属性XmlnsDefinitionAttribute在生成程序集的源代码中位于程序集级别。 WPF程序集源代码使用此属性将各种常见的命名空间(例如System.Windows和System.Windows.Controls映射到http://schemas.microsoft.com/winfx/2006/xaml/presentation命名空间。
XmlnsDefinitionAttribute具有两个参数:XML / XAML命名空间名称和CLR命名空间名称。可以存在多个XmlnsDefinitionAttribute来将多个CLR名称空间映射到同一XML名称空间。映射后,如果需要,可以通过在部分类代码隐藏页面中提供适当的using语句来引用这些名称空间的成员而无需完全限定。有关更多详细信息,请参见XmlnsDefinitionAttribute。