Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
Обработка событий для вкладки Ink API
Следующая задача для вкладки
Ink API
Click
RadioButton
Click
RadioButton
RadioButtonClicked
Click
SelectionChanged
ComboBox
ColorChanged
public partial class MainWindow : Window
{
public MainWindow()
{
this.InitializeComponent();
// Вставить сюда код, требуемый при создании объекта.
}
private void RadioButtonClicked(object sender,RoutedEventArgs e)
{
// TODO: добавить сюда реализацию обработчика событий.
}
private void ColorChanged(object sender,SelectionChangedEventArgs e)
{
// TODO: добавить сюда реализацию обработчика событий.
}
}
Обработчики событий будут реализованы позже, так что оставьте их пока пустыми.
Добавление элементов управления в панель инструментов
Вы добавите элемент управления
InkCanvas
Щелкните правой кнопкой мыши где-нибудь в области панели инструментов и выберите в контекстном меню пункт Choose Items (Выбрать элементы). Вскоре появится список возможных компонентов для добавления в панель инструментов. Вас интересует элемент управления
InkCanvas

На заметку! Элементы управления Ink API не совместимы с визуальным конструктором XAML в версии Visual Studio 16.8.3 (текущая версия на момент написания главы) или Visual Studio 16.9 Preview 2. Использовать элементы управления можно, но только не через визуальный конструктор.
Элемент управления InkCanvas
Простое добавление
InkCanvas

Элемент управления
InkCanvas
EditingMode
InkCanvasEditingMode
Ink
Select
EraseByStroke
На заметку! Штрих — это визуализация, которая происходит во время одиночной операции нажатия и отпускания кнопки мыши. Элемент управления
InkCanvas
StrokeCollection
Strokes
Обновите обработчик
RadioButtonClicked()
InkCanvas
RadioButton
private void RadioButtonClicked(object sender,RoutedEventArgs e)
{
<b> // В зависимости от того, какая кнопка отправила событие,</b>
<b> // поместить InkCanvas в нужный режим оперирования.</b>
this.MyInkCanvas.EditingMode =
(sender as RadioButton)?.Content.ToString() switch
{
// Эти строки должны совпадать со значениями свойства Content
// каждого элемента RadioButton.
"Ink Mode!" => InkCanvasEditingMode.Ink,
"Erase Mode!" => InkCanvasEditingMode.EraseByStroke,
"Select Mode!" => InkCanvasEditingMode.Select,
_ => this.MyInkCanvas.EditingMode
};
}
Вдобавок установите
Ink
ComboBox
ComboBox
public MainWindow()
{
this.InitializeComponent();
// Установить режим Ink в качестве стандартного.
this.MyInkCanvas.EditingMode = InkCanvasEditingMode.Ink;