Реализация части обработчиков раздела меню Edit
Задачи раздела меню Edit, связанные с использованием буфера обмена, реализовать достаточно легко, поскольку вся необходимая функциональность уже заложена в элементе TextBox. Одними из первых подключим откаты Undo и Redo. Можно было бы создать свой механизм хранения откатов, но мы воспользуемся встроенным в TextBox журналом откатов. Он поддерживается методами Undo() и Redo(). Все члены класса TextBox можно посмотреть в MSDN на русском языке по ссылке
http://msdn.microsoft.com/ru-ru/library/system.windows.controls.textbox_members.aspx
Еще раз вспомним, что мы пока не управляем доступностью элементов-источников задач.
- В файле Edit.cs заполните часть обработчиков следующим кодом
partial class Window1 { //------------------------------------------------------ // // Обработчики источников задач Edit // //------------------------------------------------------ private void UndoOnExecute(object sender, RoutedEventArgs e) { txtBox1.Undo(); } private void RedoOnExecute(object sender, RoutedEventArgs e) { txtBox1.Redo(); } private void CutOnExecute(object sender, RoutedEventArgs e) { txtBox1.Cut(); // Вариант //Clipboard.SetText(txtBox1.SelectedText); //txtBox1.SelectedText = ""; } private void CopyOnExecute(object sender, RoutedEventArgs e) { txtBox1.Copy(); // Вариант //Clipboard.SetText(txtBox1.SelectedText); } private void PasteOnExecute(object sender, RoutedEventArgs e) { // Если в буфере содержатся данные текстового формата if (Clipboard.ContainsText()) txtBox1.Paste(); } private void DeleteOnExecute(object sender, RoutedEventArgs e) { txtBox1.SelectedText = String.Empty; } private void FindOnExecute(object sender, RoutedEventArgs e) { } private void FindNextOnExecute(object sender, RoutedEventArgs e) { } private void ReplaceOnExecute(object sender, RoutedEventArgs e) { } private void GoToOnExecute(object sender, RoutedEventArgs e) { } private void SelectAllOnExecute(object sender, RoutedEventArgs e) { txtBox1.SelectAll(); } } Оставшиеся обработчики задач меню Edit требуют более сложного кода с использованием немодальных диалоговых окон, которые должны располагаться всегда поверх основного окна с редактируемым текстом. Попробуем последовательно реализовать их.
Дата добавления: 2015-04-15; просмотров: 662;