Для загрузки изображений в приложениях WPF используется элемент Image. Сегодня мы рассмотрим работу с этим элементом управления, а также, дополнительно, рассмотрим работу с ещё одним элементом управления, который может использоваться для создания изображений — InkCanvas.
Свойства класса Image
Класс Image в WPF поддерживает следующие форматы изображений: .bmp, .gif, .ico, .jpg, .png, .wdp и .tiff. При этом, если в Image загружается gif, то будет отображаться только первый кадр, так как элемент Image не поддерживает проигрывание анимацией. Для работы, Image предоставляет нам следующий свойства:
| Свойство | Тип | Описание |
Source |
ImageSource |
Источник изображения. По умолчанию — null |
Stretch |
Stretch |
Значение, определяющее то, как следует растягивать изображение, чтобы заполнить прямоугольную область Image. Может принимать следующие значения:
|
StretchDirection |
StretchDirection |
значение, показывающее, как масштабировано изображение. Может принимать одно из следующих значений:
|
В качестве примера, можно продемонстрировать загрузку изображения в Image из файла. В примере ниже файл расположен по пути c:\pictures\pick.jpg
<Grid>
<Image Source="C:\pictures\pick.jpg"
Stretch="UniformToFill"
StretchDirection="DownOnly" />
</Grid>
В результате мы увидим изображение, растянутое по размерам всего окна (т.к. объект Image при таком расположении также будет занимать всё доступное пространство):
Помимо обычно загрузки изображения, используя Image, мы можем также осуществлять простейшие операции над изображениями — поворачивать, обрезать, преобразовывать в оттенки серого и так далее. Например, развернем наше изображение на 90 градусов:
<Image Stretch="UniformToFill"
StretchDirection="Both">
<Image.Source>
<BitmapImage UriSource="C:\pictures\pick.jpg" Rotation="Rotate90" />
</Image.Source>
</Image>
Класс InkCanvas
Элемент управления InkCanvas представляет собой контейнер на котором можно рисовать. То есть, мы можем подгружать в InkCanvas, например, изображение и рисовать на нем. Изначально InkCanvas предполагалось использовать для стилуса, но сейчас имеется возможность использовать для рисования мышь. Например, напишем следующий код XAML:
<InkCanvas>
<Image Source="C:\pictures\pick.jpg"></Image>
</InkCanvas>
Теперь можно запустить приложение и, зажав левую кнопку мыши, что-нибудь нарисовать на картинке:
Итого
Работа с изображениями в WPF, в основном, строится вокруг использования элемента управления Image, возможностей которого хватает, чтобы загрузить картинку из файла и произвести над ней, при необходимости простейшие манипуляции. Также, в WPF имеется элемент InkCanvas, который может использоваться для рисования с использованием курсора мыши.
