画像ソースを動的に設定する必要があります。画像はネットワーク上のどこかにあることに注意してください、ここに私のコードがあります
BitmapImage logo = new BitmapImage();
logo.BeginInit();
logo.UriSource = new Uri(@"pack://application:,,,\\myserver\\folder1\\Customer Data\\sample.png");
logo.EndInit(); // Getting the exception here
ImageViewer1.Source = logo;
例外:
URIプレフィックスは認識されません
あなただけの1行が必要です:
ImageViewer1.Source = new BitmapImage(new Uri(@"\myserver\folder1\Customer Data\sample.png"));
上記の解決策はどれも私にとってはうまくいきませんでした。しかし、これは:
myImage.Source = new BitmapImage(new Uri(@"/Images/foo.png", UriKind.Relative));
ここで使用しているパック構文は、アプリケーション内のリソースとして含まれているイメージ用であり、ファイルシステム内のルーズファイル用ではありません。
実際のパスをUriSourceに渡すだけです。
logo.UriSource = new Uri(@"\\myserver\folder1\Customer Data\sample.png");
アプリケーションに画像を追加するのではなく、フォルダから画像を取得する必要があるため、どの方法も機能しませんでした。以下のコードが機能しました:
TestImage.Source = GetImage("/Content/Images/test.png")
private static BitmapImage GetImage(string imageUri)
{
var bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.UriSource = new Uri("pack://siteoforigin:,,,/" + imageUri, UriKind.RelativeOrAbsolute);
bitmapImage.EndInit();
return bitmapImage;
}