XAML资源字典同一程序集引用

4
我正在开发一个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>

1个回答

4
请勿使用资源字典的绝对路径。只需使用相对路径引用即可。
例如,
<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary
             Source="folder/Foo.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</UserControl.Resources>

谢谢,它起作用了。我需要更深入地研究一下 Pack URI。 - damix911

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接