2

我有 3 个程序集:

编号 1- ResourceAssembly,其中包含一个子文件夹 Images,其中包含 1 个图像(构建操作 = 资源)。在该子文件夹中是一个 ResourceDictionary,其中构建操作设置为资源。资源字典包含以下内容 -

<BitmapImage x:Key="BluePlus_48x48_72" UriSource="112_Plus_Blue_48x48_72.png"/>

编号 2 - 带有一个名为 UserControl1 的单个用户控件的 wpf 控件程序集。在该用户控件的资源中,我从程序集 1 加载资源字典并使用其中的图像。

<ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/ResourcesAssembly;component/Images/ImagesDictionary.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>

<Image Source="{DynamicResource BluePlus_48x48_72}" Height="48" Width="48"/>

图像正确显示。

3 号 - 主应用程序集。在 MainWindow.xaml 中,我引用 Project1 程序集并插入一个 UserControl1。

xmlns:p1="clr-namespace:Project1;assembly=Project1"
<p1:UserControl1 Height="60" Width="60"/>

但是,图像没有出现。运行时没有编译时错误,也没有任何错误输出到“输出”窗口。我不知道为什么图像没有出现。任何想法?

谢谢你的帮助!

4

2 回答 2

1

我认为您还需要在主应用程序中添加对“ResourceAssembly”项目的引用。或者至少将“ResourceAssembly.dll”与您的主应用程序的可执行文件放在同一文件夹中。

于 2010-09-10T21:49:54.867 回答
0

尝试提供如下资源参考。

<ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/YourAssembly.Name;component/Images/ImagesDictionary.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>

<Image Source="{StaticResource BluePlus_48x48_72}" Height="48" Width="48"/>

注意:另外,不要忘记 / in Source="/

高温高压

于 2010-09-10T17:30:13.780 回答