ファイル システムに保持されているファイルからいくつかの BitmapImages を読み込もうとしています。キーと相対ファイルパスの辞書があります。残念ながら、Uri コンストラクターは、画像を読み込む方法が非決定的であるようです。
これが私のコードです:
foreach(KeyValuePair<string, string> imageLocation in _imageLocations)
{
try
{
BitmapImage img = new BitmapImage();
img.BeginInit();
img.UriSource = new Uri(@imageLocation.Value, UriKind.Relative);
img.EndInit();
_images.Add(imageLocation.Key, img);
}
catch (Exception ex)
{
logger.Error("Error attempting to load image", ex);
}
}
残念ながら、Uris が相対ファイル Uris としてロードされることもあれば、相対パック Uris としてロードされることもあります。どちらがどのようにロードされるかについて、韻や理由はないようです。すべての Uris が 1 つの方法で読み込まれることもあれば、いくつかの方法で読み込まれることもあれば、ほとんどの場合、コードを実行するたびに変更されることもあります。
ここで何が起こっているのですか?