在我的WPF应用程序中,我试图从外部程序集加载资源字典。
它在设计师的下划线中带有消息"定位时发生错误..." (我的信息是法语,所以不确定确切的英文版本。)
以下是我在App.xaml中的内容:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
<ResourceDictionary Source="pack://application:,,,/MYNAMESPACE;component/Themes/MYFILE.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.AnimatedTabControl.xaml" />
<ResourceDictionary Source="pack://application:,,,/MYNAMESPACE;component/Styles/MYFILE.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
MYNAMESPACE的两行用消息加下划线。我离开了Mahapps,因为他们工作正常而且没有得到强调。我对名称进行了编辑,因为它们与我的公司有关。
我在这里发现了一些东西,说xaml构建动作应该是&#34;资源&#34; (here),但有人说这可能会导致问题。 Mahapps中的xaml文件是&#34; Page&#34; (我也是)并且工作得很好。
我的程序集是&#34;用户控件库&#34;。
类型的项目答案 0 :(得分:1)
我记得在同样的问题上挣扎。我无法记住究竟是什么解决了我的问题,但这就是我设置它的方式。
资源词典(xaml)的构建操作设置为Page
。所以我很确定你的假设是正确的。
包含外部资源词典的项目是我工作的相同解决方案的一部分。所以我引用了如下的词典:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/MY.NAMESPACE;component/MyExternalDictionary.xaml" />
<ResourceDictionary Source="/MY.NAMESPACE;component/MYFILE.xaml" />
<ResourceDictionary Source="MyInternalDictionary.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
这似乎对我有用,但我不记得这是否就是我所做的一切来解决它。
因此,如果仍然无法正常工作,也可能是由缺少参考引起的。如果您的某个外部资源字典引用了某些内容,则可能还必须将其添加到当前项目中。