XAML ResourceDictionary相同的程序集引用

时间:2013-06-26 09:20:25

标签: wpf xaml

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

1 个答案:

答案 0 :(得分:3)

不要将绝对路径用于资源字典。只需使用相对路径参考。

例如,

<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary
             Source="folder/Foo.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</UserControl.Resources>