Как задать/получить ImageSource приложений Windows Store

Всем привет, решил написать небольшую заметку о том, как получить или задать источник (картинку) для элемента управления Image в приложения для Windows Store и Windows Phone Store на C#.
Теперь, после обновления Windows Phone до 8.1, а Windows 8.1 до Update 1 API для разработке под эти две платформы стали на 90% общим, что чертовски удобно. Сейчас делаю универсальное приложение, общего кода получается действительно много, единственное что радикально отличается, так это UI, но с этим ничего не поделаешь. Так вот в связи с общим API, весь код приведенный в этой статье будет отлично работать на двух платформах. Итак, перейдем к делу:

Задать источник (Source) для Image

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

Получить источник (Source) Image

Конечно, получение источника менее распространённый сценарий, но мне один раз это понадобилось. Здесь немного посложнее, пришлось поискать, как это сделать. В итоге получилось такое решение:

Здесь главное казать тип возвращаемого значения (BitmapImage) перед img.Source, иначе тип возвращаемого значения будет ImageSource. Если вам нужно получить источник в виде URI, а не строки, как выше, то вместо последней сроки необходимо написать следующую:

Вот и все, получилась такая мини-заметка.

Категория: Windows Phone, Windows Store, С#
Понравилась статья? Поделись в социальных сетях:

  • Дмитрий

    Добрый день! подскажите пожалуйста, у меня не работает ваш пример. в первой же строчке : Ошибка CS0246 Не удалось найти тип или имя пространства имен “BitmapImage” (возможно, отсутствует директива using или ссылка на сборку). что нужно подключить?

    • http://programmict.ru/ Дмитрий

      Да пожалуйста, бывает такое :)

  • https://pro-papers.com Rita Williams

    сейчас виндоусфоны не так уж и распространены. на самом деле задумка минимализма интерфейса очень интересная и востребованная (обязательно найдет свою аудиторию). но проблема разработчиков, как по мне, была в том, что на рынок выпустили слишком сырой продукт… и на форе многофункционального андроида, виндоус просто не выстрелил. даже невооруженным глазом видно, что андроиду посвящены множество сатов, таких как http://protabletpc.ru, об андроиде невероятно много информации, чего нельзя сказать о оси виндоусмобайл (инфа есть, но ее несопоставимо меньше). маркетологи поспешили выкинуль на рынок данный продукт, что обернулось практически провалом… но посмотрим, думаю виндоус еще заявят о себе в мире мобильной разработки