Работа с изображениями. Image и InkCanvas

Последнее обновление: 31.10.2015

Элемент Image

Элемент Image предназначен для работы с изображениями. Свойство Source позволяет задать путь к изображению, например:

<Image Source="myPhoto.jpg" />

WPF поддерживает различны форматы изображений: .bmp, .png, .gif, .jpg и т.д.

Также элемент позволяет проводить некоторые простейшие транформации с изображениями. Например, с помощью объекта FormatConvertedBitmap и его свойства DestinationFormat можно получить новое изображение:

<Grid Background="Black">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="2.5*" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <Image Grid.Column="0" x:Name="mainImage">
        <Image.Source>
            <FormatConvertedBitmap Source="3.jpg" 
				DestinationFormat="Gray32Float" />
        </Image.Source>
    </Image>
    <StackPanel Grid.Column="1">
        <Image Source="1.jpg" />
        <Image Source="2.jpg" />
        <Image Source="4.jpg" />
        <Image Source="3.jpg" />
    </StackPanel>
</Grid>
Элемент Image в WPF

InkCanvas

InkCanvas представляет собой полотно, на котором можно рисовать. Первоначально оно предназначалось для стилуса, но в WPF есть поддержка также и для мыши для обычных ПК. Его очень просто использовать:

<InkCanvas Background="LightCyan" />

Либо мы можем вложить в InkCanvas какое-нибудь изображение и на нем уже рисовать:

<InkCanvas>
    <Image Source="2.jpg"  Width="300" Height="250"  />
</InkCanvas>
Элемент InkCanvas в WPF

Все рисование в итоге представляется в виде штрихов - элементов класса System.Windows.Ink.Stroke и хранится в коллекции Strokes, определенной в классе InkCanvas.

Режим рисования

InkCanvas имеет несколько режимов, они задаются с помощью свойства EditingMode, значения для которого берутся из перечисления InkCanvasEditingMode.. Эти значения бывают следующими:

  • Ink: используется по умолчанию и предполагает рисование стилусом или мышью

  • InkAndGesture: рисование с помощью мыши/стилуса, а также с помощью жестов (Up, Down, Tap и др.)

  • GestureOnly: рисование только с помощью жестов пользователя

  • EraseByStroke: стирание всего штриха стилусом

  • EraseByPoint: стирание только части штриха, к которой прикоснулся стилус

  • Select: выделение всех штрихов при касании

  • None: отсутствие какого-либо действия

Используя эти значения и обрабатывая события InkCanvas, такие как StrokeCollected (штрих нарисован), StrokeErased (штрих стерли) и др., можно управлять набором штрихов и создавать более функциональные приложения на основе InkCanvas.

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850