簡體   English   中英

為什么XAML(WPF)不在我的XML命名空間定義中搜索控件?

[英]Why is XAML(WPF) not searching in my XML namespace definitions for the controls?

我有兩個類似的項目。 一個是Silverlight項目,另一個是WPF。 它們都包含一些名稱空間和大量自定義用戶控件。

由於控件分布在許多名稱空間中,因此當我使用它們時,我必須定義相當多的名稱空間。 所以我開始AssemblyInfo.cs定義XML名稱空間

[assembly: XmlnsPrefix("http://ui.example.com/xaml/touch", "cui")]
[assembly: XmlnsDefinition("http://ui.example.com/xaml/touch", "example_ui.controls")]
[assembly: XmlnsDefinition("http://ui.example.com/xaml/touch", "example_ui.themes")]

現在我必須在每個文件中只定義一個命名空間:

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時需要定義,這些XAML 將在稍后構建到程序集中

編輯

我創建了另一個WPF用戶控件庫並添加了您使用的相同XmlnsDefinition ,將用戶控件庫的引用添加到我的WPF應用程序項目中,在我的MainWindow.xaml使用了<cui:UserControl1 />並且沒有錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM