На заметку! Элементы управления Ink API не совместимы с визуальным конструктором XAML в версии Visual Studio 16.8.3 (текущая версия на момент написания главы) или Visual Studio 16.9 Preview 2. Использовать элементы управления можно, но только не через визуальный конструктор.
Элемент управления InkCanvas
Простое добавление
InkCanvas
делает возможным рисование в окне. Рисовать можно с помощью
мыши либо, если есть устройство, воспринимающее касания, то пальца или цифрового пера. Запустите приложение и нарисуйте что-нибудь (рис. 25.19).
Элемент управления
InkCanvas
обеспечивает нечто большее, чем просто рисование штрихов с помощью мыши (или пера); он также поддерживает несколько уникальных режимов редактирования, управляемых свойством
EditingMode
, которому можно присвоить любое значение из связанного перечисления
InkCanvasEditingMode
. В данном примере вас интересует режим
Ink
, принятый по умолчанию, который только что демонстрировался, режим
Select
, позволяющий пользователю выбирать с помощью мыши область для перемещения или изменения размера, и режим
EraseByStroke
, который удаляет предыдущий штрих мыши.
На заметку! Штрих — это визуализация, которая происходит во время одиночной операции нажатия и отпускания кнопки мыши. Элемент управления
InkCanvas
сохраняет все штрихи в объекте
StrokeCollection
, который доступен с применением свойства
Strokes
.
Обновите обработчик
RadioButtonClicked
следующей логикой, которая помещает
InkCanvas
в нужный режим в зависимости от выбранного переключателя
запустите программу еще раз, нажав <F5>. Войдите в режим
Ink
и нарисуйте что-нибудь. Затем перейдите в режим
Erase
и сотрите ранее нарисованное (курсор мыши автоматически примет вид стирающей резинки). Наконец, переключитесь в режим
Select
и выберите несколько линий, используя мышь в качестве лассо.
Охватив элемент, его можно перемещать по поверхности холста, а также изменять размеры. На рис. 25.20 демонстрируются разные режимы в действии.
Элемент управления ComboBox
После заполнения элемента управления
ComboBox
(или
ListBox
) есть три способа определения выбранного в них элемента. Во-первых, когда необходимо найти числовой индекс выбранного элемента, должно применяться свойство
SelectedIndex
(отсчет начинается с нуля; значение
– 1
представляет отсутствие выбора). Во-вторых, если требуется получить объект, выбранный внутри списка, то подойдет свойство
SelectedItem
. В-третьих, свойство
SelectedValue
позволяет получить значение выбранного объекта (обычно с помощью вызова
ToString
).
Последний фрагмент кода, который понадобится добавить для данной вкладки, отвечает за изменение цвета штрихов, нарисованных в
InkCanvas
. Свойство
DefaultDrawingAttributes
элемента
InkCanvas
возвращает объект
DrawingAttributes
, который позволяет конфигурировать многочисленные аспекты пера, включая его размер и цвет (помимо других настроек). Модифицируйте код C# следующей реализацией метода