private static void OnCut(Object sender, ExecutedRoutedEventArgs e) { EditView editor = sender as EditView; if (editor != null && editor.Document != null) { String targetText = String.Empty; if (editor.Selection.IsEmpty) { // 剪切整行 CopyWholeLine(editor); editor.SelectLine(); } else { // 剪切选中的文字 CopySelectedText(editor); } using (editor.Document.AutoUpdate()) { editor.RemoveSelection(); editor.Redraw(); } e.Handled = true; } }
private static void OnPaste(Object sender, ExecutedRoutedEventArgs e) { EditView editor = sender as EditView; if (editor != null && editor.Document != null) { IDataObject obj = null; try { obj = Clipboard.GetDataObject(); } catch (ExternalException) { return; } if (obj == null) { return; } String text = (String)obj.GetData(DataFormats.UnicodeText); text = CommonUtilities.NormalizeText(new StringReader(text)); if (!String.IsNullOrEmpty(text)) { using (editor.Document.AutoUpdate()) { if (obj.GetDataPresent(LineCopyFormat)) { // 粘贴整行 editor.InsertLine(text); editor.Redraw(); } else { editor.InsertText(text); editor.Redraw(); } } } e.Handled = true; } }
private static void OnCancelSelection(Object sender, ExecutedRoutedEventArgs e) { if (e.Handled) { return; } EditView editor = sender as EditView; editor.CancelSelection(); editor.Redraw(); e.Handled = true; }
private static void OnRedo(Object sender, ExecutedRoutedEventArgs e) { EditView editor = sender as EditView; if (editor != null && editor.Document != null) { editor.Redo(); editor.MoveCaretInVisual(); editor.Redraw(); e.Handled = true; } }
private static ExecutedRoutedEventHandler CaretHandler(CaretMovementType caretMovementType, Boolean doSelect) { return((sender, e) => { if (e.Handled) { return; } EditView editor = sender as EditView; editor.MoveCaret(caretMovementType, doSelect); editor.Redraw(); e.Handled = true; }); }
private static void OnEnter(Object sender, ExecutedRoutedEventArgs e) { if (e.Handled) { return; } EditView editor = sender as EditView; if (editor != null && editor.Document != null) { using (editor.Document.AutoUpdate()) { editor.InsertText(CommonUtilities.LineBreak); editor.Caret.RestartAnimation(); editor.Redraw(); } e.Handled = true; } }
private static void OnTabBackward(Object sender, ExecutedRoutedEventArgs e) { if (e.Handled) { return; } EditView editor = sender as EditView; if (editor != null && editor.Document != null) { using (editor.Document.AutoUpdate()) { editor.TabBackward(); editor.Caret.RestartAnimation(); editor.Redraw(); } e.Handled = true; } }
/// <summary> /// 统一处理成删除selection,command是一个selection相关的命令。 /// </summary> /// <param name="command"></param> /// <returns></returns> private static ExecutedRoutedEventHandler RemoveHandler(RoutedUICommand command) { return((sender, e) => { if (e.Handled) { return; } EditView editor = sender as EditView; if (editor != null && editor.Document != null) { using (editor.Document.AutoUpdate()) { if (editor.Selection.IsEmpty) { command.Execute(e.Parameter, editor); } editor.RemoveSelection(); editor.Redraw(); } e.Handled = true; } }); }