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;
            }
        }
Пример #3
0
        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;
            }
        }
Пример #5
0
 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;
         }
     });
 }