2014-09-04 6 views
0

У меня есть строка местоположения для изображения, и я пытаюсь создать объект XAML Image, изменить источник на строку и добавить ее в стеке.Преобразование строки в новое изображение XAML C#

Вот что я пытался до сих пор:

System.Windows.Media.Imaging.BitmapImage tmp = new System.Windows.Media.Imaging.BitmapImage(); 
tmp.UriSource = new Uri("Assets/image.jpg", UriKind.RelativeOrAbsolute); 
Image image = new Image(); 
image.Source = tmp; 

Проблема заключается в том, что я не могу показаться, чтобы преобразовать System.Windows.Media.Imaging.BitmapImage в Windows.UI.Xaml.Media.ImageSource ,

Я использую этот код практически непосредственно на веб-сайте Microsoft MSDN, и я не понимаю, почему он не работает. Я также попытался создать объект ImageSource, и я просто не могу заставить ничего работать. Это расстраивает.

ответ

2

Отображается Image с string Путь к файлу в WPF легко. Во-первых, убедитесь, что файлы были добавлены в проект с помощью команды Visual Studio Добавить существующий элемент, чтобы он добавлял файлы изображений с Значение действия Значение Ресурс. Затем вам нужно использовать правильный путь к файлу. Лучше всего, если вы обратитесь к Pack URIs in WPF страницу на MSDN для получения полной информации, но вы можете использовать этот формат довольно много везде в вашем приложении:

pack://application:,,,/ProjectOrAssemblyName;component/SubFolderName/ImageName.png 

Чтобы отобразить этот образ, вы можете просто установить это значение в string свойство и данные привязать его к Image.Source собственности в UI, или использовать его непосредственно:

<Image Source="{Binding YourImageSource}" /> 

...

<Image Source="pack://application:,,,/ 
    ProjectOrAssemblyName;component/SubFolderName/ImageName.png" /> 
0

Вы РБП может попробовать это:

BitmapImage BitmapToImageSource(System.Drawing.Bitmap bitmap, System.Drawing.Imaging.ImageFormat imgFormat) 
     { 
      using (MemoryStream memory = new MemoryStream()) 
      { 
       bitmap.Save(memory, imgFormat); 
       memory.Position = 0; 
       BitmapImage bitmapImage = new BitmapImage(); 
       bitmapImage.BeginInit(); 
       bitmapImage.StreamSource = memory; 
       bitmapImage.CacheOption = BitmapCacheOption.OnLoad; 
       bitmapImage.EndInit(); 

       return bitmapImage; 
      } 
     } 

(источник: http://pastebin.com/PAJ7Cd0x)

С уважением,

1

Проблема заключается в том, что я не могу показаться, чтобы преобразовать System.Windows.Media.Imaging.BitmapImage до Windows.UI.Xaml.Media.ImageSource.

В соответствии с ссылкой на ImageSource, похоже, вы используете приложение WinRT, а не WPF.

Если вы используете приложение WinRT, вы должны использовать Windows.UI.Xaml.Media.Imaging.BitmapImage. System.Windows.Media.Imaging.BitmapImage предназначен для использования в WPF.

Смежные вопросы