Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Can';t在WPF应用程序中打开图像_C#_Wpf_Image_Resources_Xamlparseexception - Fatal编程技术网

C# Can';t在WPF应用程序中打开图像

C# Can';t在WPF应用程序中打开图像,c#,wpf,image,resources,xamlparseexception,C#,Wpf,Image,Resources,Xamlparseexception,在我的应用程序中,我想显示一些图片(我需要将它们存储在列表中)。我打开它们有问题。首先,我制作了一个目录图像(使用VS)。接下来,我将图片加载到此文件夹(也在VS中)。 我想像这里一样打开其中一个: 然后在尝试运行程序时,我得到: XamlParseException 几乎没有任何信息。 可以肯定的是,第一行导致了问题,因为只有当我删除它时,问题才会消失 我也试着这样做: Uri myUri = new Uri("Images\bulbOff.png", UriKind.RelativeOr

在我的应用程序中,我想显示一些图片(我需要将它们存储在列表中)。我打开它们有问题。首先,我制作了一个目录图像(使用VS)。接下来,我将图片加载到此文件夹(也在VS中)。 我想像这里一样打开其中一个:

然后在尝试运行程序时,我得到:

XamlParseException
几乎没有任何信息。 可以肯定的是,第一行导致了问题,因为只有当我删除它时,问题才会消失

我也试着这样做:

Uri myUri = new Uri("Images\bulbOff.png", UriKind.RelativeOrAbsolute);
PngBitmapDecoder decoder2 = new PngBitmapDecoder(myUri, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
BitmapSource bitmapSource2 = decoder2.Frames[0];
同样的结果。 我还尝试将图像复制到应用程序的主文件夹(在SolutionView中)。当我尝试获取“\bulbOff.png”时,结果是一样的。 当我尝试获取“bulbOff.png”时,我得到了


再一次,但是有一些信息-暗示路径可能是错误的。

尝试将图像和代码更改为jpg扩展名。严肃地说。

如果您想提供


…其中图像是项目中的文件夹。

为什么加载图像会引发XamlParseException?您是否100%确定该异常与加载映像有关?请移动该代码,使其在实例化控件时不会正确发生。构造期间抛出的任何异常(从XAML间接调用)都将被捕获并抛出XamlParseException。然而,InnerException(或者可能是几个级别的InnerException)应该会揭示真正的错误。@Gerardo在我写这篇文章时,我试图从最后一行开始逐行删除代码。并且在删除第一行后已停止抛出异常(在两个示例中,它都包含文件的路径)。请将您的完整异常发布在此处好的,我明白了。。。检查并发布内部异常以查看XamlParseException(它是一个包装器ex,它完全不告诉我们)1下面发生了什么。据我所知,BitmapImage只是抽象类ImageSource的实现。2.在这两个示例中,您都只使用BitmapImage,那么提供图像源是什么意思?@rideronthestorm您正确地认为ImageSource是更高级别的类型,并进行了相应的编辑,尝试一下BitmapImage路线,我知道它是有效的……它现在处于代码中,png图像不需要解码吗?“@”代表什么?为什么在您键入的路径的开头“../”(转到文件树的上层)?@riderothestorm不需要手动解码;@在URI上强制使用字符串文字,因此不需要转义…是的,它将上升一级…好的,它以您所展示的方式工作。但问题是为什么它没有像微软www(MSDN)上发布的那样工作?我还尝试使用带有“@”和“../”的路径,结果相同。
Uri myUri = new Uri("Images\bulbOff.png", UriKind.RelativeOrAbsolute);
PngBitmapDecoder decoder2 = new PngBitmapDecoder(myUri, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
BitmapSource bitmapSource2 = decoder2.Frames[0];
XamlParseException
BitmapImage image = new BitmapImage();
image.BeginInit();
image.UriSource = new Uri(@"..\Images\DocumentAccess_16x16.png", UriKind.Relative);
image.EndInit();