我需要向{{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
中正确显示。
我还尝试将新图像的动作构建更改为资源但不起作用。
文件夹中的图像没有设置动作构建。我究竟做错了什么?我真的不明白为什么找不到新的图像!