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>

4

1 回答 1

4

不要对资源字典使用绝对路径。只需使用相对路径引用。

例如,

<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary
             Source="folder/Foo.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</UserControl.Resources>
于 2013-06-26T09:29:33.887 回答