无法在文件夹中找到图像

时间:2018-01-12 11:04:02

标签: c# wpf io filepath

我需要向{{3}}项目添加一些新标记,因此我下载了它并将新图像插入Images文件夹中。每个图片名称都有CountryData.cs中提供的国家/地区ID,这是Dictionary结构:

private static readonly Dictionary<string, string> _englishNameByIso2 = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
    {
        {"AF", "Afghanistan"},
        {"AX", "Åland Islands"},
        {"AL", "Albania"},
        {"DZ", "Algeria"},
        {"AS", "American Samoa"},
        ...

现在我添加了一个新行:{"CW", "Curaçao"},,其中包含一个名为cw.png的图像文件,我可以在项目文件夹中看到该文件。但是当这段代码被执行时:

 public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        var countryId = value as string;

        if (countryId == null)
            return null;

        try
        {
            var path = $"/FamFamFam.Flags.Wpf;component/Images/{countryId.ToLower()}.png";
            var uri = new Uri(path, UriKind.Relative);
            var resourceStream = Application.GetResourceStream(uri);
            if (resourceStream == null)
                return null;

            var bitmap = new BitmapImage();
            bitmap.BeginInit();
            bitmap.StreamSource = resourceStream.Stream;
            bitmap.EndInit();
            return bitmap;
        }
        catch
        {
            return null;
        }
    }

它会为null返回IO Exception,其他图片会在ComboBox中正确显示。

我还尝试将新图像的动作构建更改为资源但不起作用。

文件夹中的图像没有设置动作构建。我究竟做错了什么?我真的不明白为什么找不到新的图像!

1 个答案:

答案 0 :(得分:1)

将图像文件的Build Action设置为 Resource ,并按Resource File Pack URI加载: