如果我从另一个程序集中调用MainWindow.xaml,则不会加载图像

时间:2018-10-17 16:21:09

标签: c# wpf image

那里有两个程序集。例如A和B。 这些图像位于项目A: /Resources/images/Question.png。 当我从其项目中调用程序集A的窗口时-一切正常。图片在那里。

当我从装配B调用装配A的窗口时。-窗口本身正常。图片不见了。

有没有办法解决这个问题?

 private void SetImage(string imageName)
    {
        string uri = string.Format("/Resources/images/{0}", imageName);
        var uriSource = new Uri(uri, UriKind.RelativeOrAbsolute);
        img.Source = new BitmapImage(uriSource);
    }

谢谢。

1 个答案:

答案 0 :(得分:1)

将引用程序集的名称添加到图像的Pack URI:

private void SetImage(string imageName)
{
    var uri = "pack://application:,,,/AssemblyName;component/Resources/images/"
            + imageName;

    img.Source = new BitmapImage(new Uri(uri));
}

用包含图像资源的程序集的名称替换AssemblyName