PNG和jpg图像不显示在c#应用程序
本文关键字:应用程序 显示 jpg 图像 PNG | 更新日期: 2023-09-27 18:17:26
我在使用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: http://technet.microsoft.com/en-us/sysinternals/bb896645
您可以使用这个工具来监视机器上的所有文件活动(确保使用include/exclude过滤器来限制噪音)。
图片没有显示的原因很可能是因为你的应用程序在错误的地方寻找它们(要么它们没有被复制,要么相对路径被关闭)。
ProcessMonitor将记录Windows访问.jpg的每次尝试(无论是失败还是成功)。如果您在日志中搜索您的文件名,您应该会找到它,可能还有一条错误消息,以及Windows用于打开该文件的完整路径。
我看到最常见的结果是
- 实际使用的路径与您需要的路径不同。
- 路径是正确的,但是你的文件不在那里(构建/复制/安装问题)
- 路径是正确的,但是你的web应用程序没有权限读取文件。
在所有这些情况下,ProcessMonitor将显示发生了什么。