在类库中加载图像
本文关键字:图像 加载 类库 | 更新日期: 2023-09-27 18:17:03
我有一个托管主菜单的通用Windows应用程序。我想要一个插件架构,其中菜单项是从类库中添加的。
但是我似乎不能正确加载图像。我无法获得ms-appx:///
工作,当我尝试将图像添加为嵌入式资源时,它挂起:
var assembly = typeof(CookModule).GetTypeInfo().Assembly;
using (var imageStream = assembly.GetManifestResourceStream("My.Namespace.Folder.ImageName-100.png"))
using (var raStream = imageStream.AsRandomAccessStream())
{
var bitmap = new BitmapImage();
bitmap.SetSource(raStream); //<- Hangs here
我没有得到异常,输出中的错误或任何东西。它只是挂在那里,应用程序根本不加载页面。
我也试过了:
var bitmap = new BitmapImage(new Uri("/Folder/ImageName-100.png"));
我缺少类似于WPF包uri的东西,我可以声明从哪个程序集加载图像。
从类库向页面添加图像资源的正确(和工作)方式是什么?(或者有人有ms-appx的工作示例,其中图像在类库中)
我可以重现这个问题。目前我使用的解决方法是将资源流复制到。net内存流。
var assembly = typeof(CookModule).GetTypeInfo().Assembly;
using (var imageStream = assembly.GetManifestResourceStream("UWP.ClassLibrary.210644575939381015.jpg"))
using (var memStream = new MemoryStream())
{
await imageStream.CopyToAsync(memStream);
memStream.Position = 0;
using (var raStream = memStream.AsRandomAccessStream())
{
var bitmap = new BitmapImage();
bitmap.SetSource(raStream);
display.Source = bitmap;
}
}