我无法在WPF中使用pack Uri从代码中访问资源图像文件。

8 浏览
0 Comments

我无法在WPF中使用pack Uri从代码中访问资源图像文件。

我在我的应用程序中有一些图像资源,我想通过编程方式访问它们。

现在我基于一些源代码,所以我需要通过Uri进行访问,所以我的代码如下:

new BitmapImage(new Uri("pack://application:,,,/YearBook;component/Resources/Output/" + i.ToString() + ".jpg", UriKind.RelativeOrAbsolute));

尽管当我尝试访问它时,我得到资源未找到的错误(而且名称是正确的)。

有人知道为什么吗?

编辑:

可能需要在程序集文件中添加一些程序集?

0
0 Comments

在WPF中,有时我们可能会遇到从代码中访问资源图像文件的问题。当我尝试使用pack Uri来访问资源图像文件时,我遇到了问题。最终,我发现问题出在我忘记了一个子文件夹。

下面是我最终解决问题的代码:

new BitmapImage(new Uri("pack://application:,,,/Resources/Images/Output/" 
+ i.ToString() + ".jpg", UriKind.Absolute));

通过这段代码,我成功地访问到了资源文件夹中的图像文件。

通过pack Uri,我们可以使用绝对路径来访问应用程序中的资源。在这个例子中,我使用了"pack://application:,,,"前缀来指定应用程序的根目录。然后,我添加了资源文件夹的路径和图像文件的文件名。最后,我使用了UriKind.Absolute来指定这是一个绝对路径。

通过这种方式,我成功地解决了在WPF中使用pack Uri访问资源图像文件的问题。这个方法适用于需要从代码中访问资源文件的情况。希望这篇文章对解决类似问题的读者有所帮助。

0
0 Comments

问题的原因是在WPF中使用pack Uri从代码中无法访问资源图像文件。解决方法是将资源图像文件的路径设置为pack Uri格式,并将其转换为BitmapImage类型。

首先,使用Application.GetResourceStream方法获取资源的StreamResourceInfo对象。此方法接受一个Uri参数,参数的格式应为"AssemblyName;component/ResourcePath"。

然后,将获取到的资源流转换为BitmapImage类型。可以使用BitmapImage的构造函数,将资源流作为参数传递给它,然后将返回的BitmapImage对象赋值给相应的变量。

以下是代码示例:

StreamResourceInfo resource = Application.GetResourceStream(
    new Uri("AssemblyName;component/ResourcePath", UriKind.Relative));
BitmapImage bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.StreamSource = resource.Stream;
bitmapImage.EndInit();

请注意,"AssemblyName"应替换为您的程序集名称,"ResourcePath"应替换为您的资源图像文件的路径。

希望这篇文章能够帮助您解决问题。

0