我正在开发一个 WPF 控件库,我需要引用在同一程序集中定义的资源字典。
我设法让它与单独的程序集引用一起工作。
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary
Source="pack://application:,,,/MyLocalAssembly;component/Foo.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
虽然使用相同程序集引用,但它不起作用,并在加载时引发异常(“无法定位资源'Foo.xaml'。”)。 请注意,无论我使用哪种方法,在设计器中一切正常。
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary
Source="pack://application:,,,/Foo.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
最佳答案
不要对资源字典使用绝对路径。只需使用相对路径引用即可。
例如,
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary
Source="folder/Foo.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
关于wpf - XAML ResourceDictionary 相同程序集引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17316149/