[英]Creating Images from an Embedded Resource
在过去的两天里,这一直让我发疯,而我发现的任何接近似乎都不适用于我的情况,也许有人可以指出我做错了什么。
我有一个WPF项目,我已经包含了相当多的图像(80ish)。 我已将它们添加到项目中,并将其添加到名为“Images”的文件夹中。 它们目前被设置为嵌入式资源(虽然我也尝试过常规资源)但似乎没有任何效果。
我正在尝试使用这些文件作为源来创建和加载Image类型的ArrayList,但是我的失败非常糟糕。
private void addPicture(string name)
{
string filePath = "pack://MyApp_WPF:,,,/Images/" + name + ".png";
Stream imageStream = assembly.GetManifestResourceStream(filePath);
Image curImage = new Image();
BitmapImage bmpImage = new BitmapImage();
bmpImage.BeginInit();
bmpImage.UriSource = new Uri(filePath, UriKind.Relative);
bmpImage.EndInit();
curImage.Height = 60;
curImage.Stretch = Stretch.Uniform;
curImage.Source = bmpImage;
curImage.Margin = new Thickness(5);
imageList.Add(curImage);
}
在我的Windows窗体应用程序中做起来容易得多,但我不能用WPF来解决它...除了链接到资源之外的任何帮助都会很好,因为在这一点上我已经阅读了它们。
首先要注意的是,您应该订阅一个DownloadError
事件,这可能会解释发生了什么以及为什么(尽管有时错误消息是相当通用的); 接下来是你可能不需要pack://
URI构造与图像构建Resource
动作:
var bmpImage = new BitmapImage(new Uri(
string.Format("/Images/{0}.png", name", UriKind.Relative));
Pack URI是错误的,你在那里命名你应该放置权限的程序集,在本例中是application
,即
string filePath = "pack://application:,,,/Images/" + name + ".png";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.