C# 为什么XAML(WPF)没有在我的XML命名空间定义中搜索控件?

C# 为什么XAML(WPF)没有在我的XML命名空间定义中搜索控件?,c#,xml,wpf,xaml,silverlight,C#,Xml,Wpf,Xaml,Silverlight,我有两个类似的项目。一个是Silverlight项目,另一个是WPF。它们都包含一些名称空间和大量自定义用户控件 由于控件分布在许多名称空间中,因此在使用它们时,我必须定义许多名称空间。所以我开始: 现在,我必须在每个文件中只定义一个名称空间: xmlns:cui="http://ui.example.com/xaml/touch" 不幸的是,这只在Silverlight中起作用。我的问题是,如何在WPF项目中实现这一点 在WPF项目中,我遇到如下错误: Error 5 The tag

我有两个类似的项目。一个是Silverlight项目,另一个是WPF。它们都包含一些名称空间和大量自定义用户控件

由于控件分布在许多名称空间中,因此在使用它们时,我必须定义许多名称空间。所以我开始:

现在,我必须在每个文件中只定义一个名称空间:

xmlns:cui="http://ui.example.com/xaml/touch"
不幸的是,这只在Silverlight中起作用。我的问题是,如何在WPF项目中实现这一点

在WPF项目中,我遇到如下错误:

Error   5   The tag 'LookUpField' does not exist in XML namespace
   'http://ui.example.com/xaml/touch'. Line 7 Position 14.  D:\src\prototype\lookup-control\lookup-control\MainWindow.xaml  7   14  lookup-control

尽管该教程对Silverlight有效,但我相信它对WPF可能不准确。见公认的答案

我在WPF中有一个带有自定义控件的独立程序集,我能够毫无问题地使用
XmlnsDefinition
属性。我认为问题在于在构建程序集之前需要存在的定义。因此,即使控件将显示在设计器中,也无法构建它,因为编译器在编译BAML中的XAML时需要这些定义,而BAML是

编辑


我创建了另一个WPF用户控件库,并添加了与您使用的相同的
XmlnsDefinition
s,将用户控件库的引用添加到我的WPF应用程序项目中,在我的
main window.xaml中使用了
,并且没有错误。

您对WPF和Silverlight使用相同的程序集吗?也许WPF不能使用Silverlight控件。不,我已经测试了这个示例。两个项目,一个silverlight和一个wpf项目。它们无论如何都没有链接。两者都有一个自定义的用户控件和一种显示它的方式。我在文章中谈论的是实际的项目,因为我想给这个问题一个上下文/背景。
Error   5   The tag 'LookUpField' does not exist in XML namespace
   'http://ui.example.com/xaml/touch'. Line 7 Position 14.  D:\src\prototype\lookup-control\lookup-control\MainWindow.xaml  7   14  lookup-control