繁体   English   中英

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

[英]PNG and jpg images not appearing in C# application

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

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

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

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

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

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

我看到的最常见的结果是

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

在所有这些情况下,ProcessMonitor将向您显示发生的情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM