web-dev-qa-db-ja.com

コードビハインドで画像ソースを変更する-WPF

画像ソースを動的に設定する必要があります。画像はネットワーク上のどこかにあることに注意してください、ここに私のコードがあります

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プレフィックスは認識されません

37
Muhammad Akhtar

あなただけの1行が必要です:

ImageViewer1.Source = new BitmapImage(new Uri(@"\myserver\folder1\Customer Data\sample.png"));
62
timtos

上記の解決策はどれも私にとってはうまくいきませんでした。しかし、これは:

myImage.Source = new BitmapImage(new Uri(@"/Images/foo.png", UriKind.Relative));
64

ここで使用しているパック構文は、アプリケーション内のリソースとして含まれているイメージ用であり、ファイルシステム内のルーズファイル用ではありません。

実際のパスをUriSourceに渡すだけです。

logo.UriSource = new Uri(@"\\myserver\folder1\Customer Data\sample.png");
5
Wonko the Sane

アプリケーションに画像を追加するのではなく、フォルダから画像を取得する必要があるため、どの方法も機能しませんでした。以下のコードが機能しました:

 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;
        } 
3
Harish Mitra