【问题标题】:PNG and jpg images not appearing in C# applicationC# 应用程序中未出现 PNG 和 jpg 图像
【发布时间】:2011-12-12 10:53:14
【问题描述】:

我在使用 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);

【问题讨论】:

    标签: c# image png jpeg


    【解决方案1】:

    不确定图像文件的位置。如果图像在您当前的项目文件夹中,那么您必须从属性窗口设置图像文件的Copy To Output Directory=Copy Always 属性。

    【讨论】:

    • 另外,为了检测文件在运行时是否存在,仍然可以使用File.Exists(path)函数。见:msdn.microsoft.com/en-us/library/system.io.file.exists.aspx
    • 有 .sln 文件和一个文件夹。图像文件位于包含 bin、obj 和 Properties 文件夹的文件夹中。你能再解释一下那行代码吗?有什么我需要先导入的吗?
    • @Nibou - 好的!我想您可能需要仔细检查图像文件的文件名和路径。如果可能,您可以发布代码(编辑您的帖子并添加片段代码)。
    • 想通了!!我只需要将图像添加到 Visual Studio 中的解决方案资源管理器窗口。谢谢。
    【解决方案2】:

    据我所知,诊断此类问题的最佳方法(假设对代码的快速同行评审让您无处可去)是使用 ProcessMonitor:http://technet.microsoft.com/en-us/sysinternals/bb896645

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

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

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

    我看到的最常见的结果是

    1. 实际使用的路径与您需要的路径不同。
    2. 路径正确,但您的文件不存在(构建/复制/安装问题)
    3. 路径正确,但您的网络应用没有读取文件的权限。

    在所有这些情况下,ProcessMonitor 都会向您展示发生了什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-24
      • 2018-01-04
      • 2019-02-28
      • 2019-01-07
      • 2017-02-06
      相关资源
      最近更新 更多