В данном примере необходимо, чтобы три добавленных элемента управления RadioButton
были взаимно исключающими. В других инфраструктурах для построения графических пользовательских интерфейсов такие связанные элементы требуют помещения в одну групповую рамку. Поступать подобным образом в WPF нет нужды. Взамен элементам управления просто назначается то же самое
Класс RadioButton
имеет свойство IsChecked
, значения которого переключаются между true
и false
, когда конечный пользователь щелкает на элементе пользовательского интерфейса. К тому же элемент управления RadioButton
предоставляет два события (Checked
и Unchecked
), которые можно применять для перехвата такого изменения состояния.
Добавление кнопок сохранения, загрузки и удаления
Финальным элементом управления внутри ToolBar
будет Grid
, содержащий три элемента управления Button
. Поместите после последнего элемента управления Separator
следующую разметку:
Width="70" Content="Save Data"/>
Width="70" Content="Load Data"/>
Width="70" Content="Clear"/>
Добавление элемента управления InkCanvas
Финальным элементом управления для TabControl
является InkCanvas
. Поместите показанную ниже разметку после закрывающего дескриптора ToolBar
, но перед закрывающим дескриптором StackPanel
:
Предварительный просмотр окна
Теперь все готово к тестированию программы, для чего понадобится нажать клавишу <F5>. Должны отобразиться три взаимно исключающих переключателя, раскрывающийся список с тремя элементами и три кнопки (рис. 25.17).
Обработка событий для вкладки Ink API
Следующая задача для вкладки Ink API
связана с организацией обработки события Click
для каждого элемента управления RadioButton
. Как вы поступали в других проектах WPF, просто щелкните на значке с изображением молнии в окне Properties среды Visual Studio и введите имена обработчиков событий. С помощью упомянутого приема свяжите событие 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
путем прямого редактирования разметки XAML. Имейте в виду, что панель инструментов Visual Studio по умолчанию
Щелкните правой кнопкой мыши где-нибудь в области панели инструментов и выберите в контекстном меню пункт Choose Items (Выбрать элементы). Вскоре появится список возможных компонентов для добавления в панель инструментов. Вас интересует элемент управления InkCanvas
(рис. 25.18).
На заметку! Элементы управления Ink API не совместимы с визуальным конструктором XAML в версии Visual Studio 16.8.3 (текущая версия на момент написания главы) или Visual Studio 16.9 Preview 2. Использовать элементы управления можно, но только не через визуальный конструктор.
Элемент управления InkCanvas
Простое добавление InkCanvas
делает возможным рисование в окне. Рисовать можно с помощью мыши либо, если есть устройство, воспринимающее касания, то пальца или цифрового пера. Запустите приложение и нарисуйте что-нибудь (рис. 25.19).