PNG和jpg图像未出现在C#应用程序中

PNG和jpg图像未出现在C#应用程序中,c#,image,png,jpeg,C#,Image,Png,Jpeg,我在应用程序中使用C#显示某些图像时遇到问题。我使用Image类指定位置,使用BitmapImage指定源。UriSource是相对的,我只指定名称。它适用于某些图像,但对于其他图像,该图像根本不显示。我的图像实例是35x35大,另一个是100x100大(像素) 有人知道为什么会发生这种情况,以及如何修复它吗 谢谢。 以下是我使用的代码: Image removeImage = new Image(); removeImage.HorizontalAlignment = Hori

我在应用程序中使用C#显示某些图像时遇到问题。我使用Image类指定位置,使用BitmapImage指定源。UriSource是相对的,我只指定名称。它适用于某些图像,但对于其他图像,该图像根本不显示。我的图像实例是35x35大,另一个是100x100大(像素)

有人知道为什么会发生这种情况,以及如何修复它吗

谢谢。 以下是我使用的代码:

    Image removeImage = new Image();
    removeImage.HorizontalAlignment = HorizontalAlignment.Left;
            removeImage.VerticalAlignment = VerticalAlignment.Top;
            removeImage.Margin = new Thickness(490, 10, 0, 0);
            removeImage.Width = 35;
            removeImage.Height = 35;
            BitmapImage source = new BitmapImage();
            source.BeginInit();
            source.UriSource = new Uri("delete.png", UriKind.RelativeOrAbsolute);
            source.EndInit();
            removeImage.Source = source;
            removeImage.Stretch = Stretch.None;
            removeImage.Visibility = Visibility.Visible;
            removeImage.MouseDown += new MouseButtonEventHandler(removeImage_MouseDown);

不确定图像文件的位置。如果图像位于当前项目文件夹中,则必须设置“属性”窗口中图像文件的
Copy to Output Directory=Copy Always
属性。

据我所知,诊断此类问题的最佳方法(假设快速同侪检查代码对您毫无帮助)是使用ProcessMonitor:

您可以使用此工具监视计算机上的所有文件活动(确保使用“包含/排除”过滤器来限制噪音)

图像没有显示的原因很可能是因为应用程序在错误的位置查找它们(或者它们没有被复制,或者相对路径关闭)

ProcessMonitor将记录Windows访问.jpg的每次尝试(无论是失败还是成功)。如果您在日志中搜索文件名,您应该会找到它,可能还有一条错误消息,以及Windows用来打开文件的完整路径

我看到的最常见的结果是

  • 实际使用的路径与您需要的路径不同
  • 路径正确,但您的文件不在那里(生成/复制/安装问题)
  • 路径正确,但您的web应用程序没有读取该文件的权限

  • 在所有这些情况下,ProcessMonitor将向您显示发生了什么。

    此外,要检测文件在运行时是否存在,您仍然可以使用
    file.exists(path)
    函数。请参阅:有.sln文件和一个文件夹。图像文件位于包含bin、obj和Properties文件夹的文件夹中。你能再解释一下那行代码吗?有什么东西我需要先导入吗?@Nibou-好的!我想您可能需要仔细检查图像文件的文件名和路径。如果可能的话,你可以发布代码(编辑你的帖子并添加一段代码)!!我只需要将图像添加到VisualStudio中的“解决方案资源管理器”窗口。谢谢