Установить источник изображения из кода позади - PullRequest
2 голосов
/ 18 февраля 2010

У меня есть текстовое поле, в котором пользователь вводит URL изображения:

предположим, что пользователь вводит следующую строку -> C: \ Users \ malcolm \ Desktop \ img.png

imgSilverPart - это элемент управления изображением И imageUrl - это строка, которую я получаю из текстового поля.

imgSilverPart.Source = new BitmapImage (new Uri (imageUrl, UriKind.RelativeOrAbsolute));

Но изображение не отображается.

Ответы [ 2 ]

4 голосов
/ 18 февраля 2010

Это не сработает. Silverlight работает в безопасной песочнице, и вы не можете просто получить доступ к файлу на рабочем столе. Поэтому вам нужно вызвать OpenFileDialog, получить Stream в файл, выбранный пользователем, и установить Stream в качестве источника BitmapImage.

Добавьте кнопку в XAML и выполните следующие действия в обработчике событий Click:

   private void Button_Click(object sender, RoutedEventArgs e)
   {
      OpenFileDialog openFileDlg = new OpenFileDialog();
      if (openFileDlg.ShowDialog().Value)
      {
         using (var stream = openFileDlg.File.OpenRead())
         {
            var bitmapImage = new BitmapImage();
            bitmapImage.SetSource(stream);
            imgSilverPart.Source = bitmapImage;
         }
      }
   }

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

0 голосов
/ 18 февраля 2010

Может быть, вид Ури не был определен в основном. Попробуйте использовать UriKind.Relative или UriKind.Absolute с допустимой относительной или абсолютной строкой URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...