我正在尝试在松散的XAML中使用ResourceDictionary并将其加载到运行时以向WPF应用程序提供模板和样式。我在本地目录中提供了XAML,并在app启动时使用URI向App.Current.Resources.MergedDictionaries添加了一个新的ResourceDictionary。
当XAML进行解析时,它会在模板上爆炸,其中TargetType是来自正在使用它的程序集的自定义控件。
具体信息是:
'无法从文本'controls:CustomType'创建'类型'。'
我已经在顶部的ResourceDictionary中映射了名称空间:
的xmlns:对照= “CLR-名称空间:TEST.UI.WPF.Common.Controls”
有文章说明从松散的XAML加载ResourceDictionaries是可能的,但我找不到那些在这些松散的XAML文件中的自定义类型。
感谢任何帮助!
答案 0 :(得分:5)
由于您在运行时加载它并且它不是在项目中构建的,因此ResourceDictionary不知道您的程序集。您必须在程序集中包含程序集才能识别它。
xmlns:controls="clr-namespace:TEST.UI.WPF.Common.Controls;assembly=Common"
在将'; assembly = yourAssembly '添加到命名空间声明后,您应该可以运行应用程序。