我正在开发一个WPF控件库,我需要引用在同一个程序集中定义的资源字典。
我设法使用单独汇编引用。
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary
Source="pack://application:,,,/MyLocalAssembly;component/Foo.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
使用 same-assembly 引用时,它不起作用,并在加载时引发异常(“无法找到资源'Foo.xaml'。”。)。 请注意,无论我使用哪种方法,设计师都能正常工作。
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary
Source="pack://application:,,,/Foo.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
答案 0 :(得分:3)
不要将绝对路径用于资源字典。只需使用相对路径参考。
例如,
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary
Source="folder/Foo.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>