我是WPF世界的Nubie。 我刚刚开始沉浸其中。
我有一个问题,我正试图弄清楚使用ResourceDictionary和Merged Dictionaries。
我已经将WPF示例应用程序转换为类库。 在我正在尝试创建的用户控件库中包含/引用新转换的程序集。 转换后的程序集包含在包含我的用户控件库(dll)项目的解决方案中的项目中。
我能够成功转换它并除去一些问题之外的所有错误 使用ResourceDictionary。
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/ConvertedAppPath/Dictionaries/Brushes.xaml" />
<ResourceDictionary Source="/ConvertedAppPath/Dictionaries/Styles.xaml" />
<ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
原始WPF应用程序在程序集中包含多个Resource Dictionary项。
错误21查找资源字典“/ConvertedAppPath/Dictionaries/Brushes.xaml”时发生错误。 C:\ MyExplicitPath \ WPFUserControls \ DynamicDataChart.xaml 15 17 WPFUserControls 错误22查找资源字典“/ConvertedAppPath/Dictionaries/Styles.xaml”时发生错误。 C:\ MyExplicitPath \ WPFUserControls \ DynamicDataChart.xaml 15 17 WPFUserControls
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="../ConvertedAppPath/Dictionaries/Brushes.xaml" />
<ResourceDictionary Source="../ConvertedAppPath/Dictionaries/Styles.xaml" />
<ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
文件“../ConvertedAppPath/Dictionaries/Brushes.xaml”不是项目的一部分,或者它的Build Action属性未设置为“Resource”。
1)如何清除它以消除错误?
2)我是否需要在“Source”中明确设置装配位置?
3)“来源”属性的所有部分是什么?它们的真正含义是什么?
4)为什么第二条错误消息在编译时没有显示,但只在XAML编辑器中可见?
感谢您的回应和努力, JohnWPFNewB
答案 0 :(得分:0)
确保'/ConvertedAppPath/Dictionaries/Brushes.xaml'属性设置'始终复制'
因为当您运行项目时,Brushes.xaml应该使用yourproject.exe复制到同一目录,与xaml中给出的路径相同(/ConvertedAppPath/Dictionaries/Brushes.xaml)