4

从我的程序集(A)中,我想调用另一个程序集(B)中的一个方法,该方法传递一个图像。然后该图像显示在 WPF 窗口中 - 该窗口是 B 项目的一部分。

我似乎无法使用 pack:// uri 传递 ImageSource,因为这是在 B 的上下文中评估的,所以我想我需要在 A 中使用 CachedBitmap (?) 缓存图像。

        BitmapImage img = new BitmapImage(new Uri("Images/32px-Nuvola_apps_cache.png", UriKind.Relative));
        CachedBitmap cbmp = new CachedBitmap(img, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);

如果我将图像设置为嵌入式资源并将其作为流加载,我已经设法让它工作,但这不是 WPF 方式。

从包装上看:我应该能够做到这一点的文档,但我在下面尝试了这些但没有任何工作;

"Images/32px-Nuvola_apps_cache.png": "找不到部分路径" "pack://application:,,,Images/32px-Nuvola_apps_cache.png": "URI 前缀无法识别。" . "pack://siteoforigin:,,,Images/32px-Nuvola_apps_cache.png": "无法识别 URI 前缀。"

我想要做的就是将一个 Resource .png 文件加载到内存中,然后将它批量传递给另一个程序集中的方法。

谢谢保罗。

4

1 回答 1

9

尝试:

pack://application:,,,/YourAssemblyName;component/Images/32px-Nuvola_apps_cache.png
于 2009-04-29T11:30:01.813 回答