[英]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.