Изменить источник изображения в коде позади - Wpf - PullRequest
37 голосов
/ 24 сентября 2010

Мне нужно установить источник изображения динамически, обратите внимание, что мое изображение находится где-то в сети, вот мой код

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 не распознан

Ответы [ 5 ]

64 голосов
/ 10 декабря 2013

Ни одно из вышеперечисленных решений не помогло мне.Но это сделал:

myImage.Source = new BitmapImage(new Uri(@"/Images/foo.png", UriKind.Relative));
61 голосов
/ 24 сентября 2010

Вам просто нужна одна строка:

ImageViewer1.Source = new BitmapImage(new Uri(@"\myserver\folder1\Customer Data\sample.png"));
5 голосов
/ 24 сентября 2010

Синтаксис пакета, который вы здесь используете, предназначен для изображения, содержащегося в качестве ресурса в вашем приложении, а не для свободного файла в файловой системе.

Вы просто хотите передать фактический путь к UriSource:

logo.UriSource = new Uri(@"\\myserver\folder1\Customer Data\sample.png");
3 голосов
/ 12 ноября 2014

Ни один из методов не работал для меня, так как мне нужно было извлечь изображение из папки, а не добавлять его в приложение. Код ниже работал:

 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;
        } 
0 голосов
/ 30 января 2013

Вы все не правы! Зачем? Потому что все, что вам нужно, это код для работы:

(Просмотр изображения) / C # Img is: your Image box

Сохраните это как есть, без изменений ("ms-appx: ///), это код, а не имя вашего приложения Изображения это ваша папка в вашем проекте, вы можете изменить его. dog.png - это ваш файл в вашей папке, а также я делаю свою папку 'Images' и файл 'dog.png' Итак, URI: "ms-appx: ///Images/dog.png" и мой код:


private void Button_Click(object sender, RoutedEventArgs e)
    {
         img.Source = new BitmapImage(new Uri("ms-appx:///Images/dog.png"));
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...