2

我怎么知道用户是否点击Enter了键盘RichEditBox

此代码不起作用

  private void Editor_KeyDown(object sender, KeyRoutedEventArgs e)
  {
      var dia = new MessageDialog(e.Key + "");
      dia.ShowAsync();
  }

此代码也不起作用

 private void Editor_KeyDown(object sender, KeyRoutedEventArgs e)
 {
     if (e.OriginalKey == (VirtualKey)(char)13)
     {
         NumberEditor.Text += Convert.ToString(_LineNum) + Environment.NewLine;
         ++_LineNum;
     }
 }

如何获取行中的行RichEditBox以及如何更改代码中的文本RichEditBox

我想做一个编辑器,感谢您的帮助。

问候

4

1 回答 1

0

看看这个方法:

   private void ChangeLine()
    {
        var textRange = MyRichEditBox.Document.GetRange(MyRichEditBox.Document.Selection.StartPosition, MyRichEditBox.Document.Selection.StartPosition);
        textRange.Expand(TextRangeUnit.Line);

        //Change line size.
        textRange.CharacterFormat.Size = 30;

        //Center the paragraph
        textRange.ParagraphFormat.Alignment = ParagraphAlignment.Center;

        //this will change text of the range
        textRange.Text = "My new text";
    }

从 Document 你必须得到 ITextRange。之后,您可以将其扩展为 TextRangeUnit.Line 并获得整行。现在您可以更改线条的样式和文本。

试试这个 KeyDownEvent 的代码:

 public sealed partial class TextEditPage : Page
{
    private readonly KeyEventHandler _keyDownHandler;

    //Constructor
    public TextEditPage()
    {
        this.InitializeComponent();
        this.Unloaded += OnUnloaded;

        //Add keydown event
        this._keyDownHandler = OnKeyDown;
        RtfBox.AddHandler(KeyDownEvent, this._keyDownHandler, true);
    }

    private void OnKeyDown(KeyRoutedEventArgs e)
    {
        //enter your code here
    }

    private void OnUnloaded(object sender, RoutedEventArgs routedEventArgs)
    {
        this.RemoveHandler(KeyDownEvent, _keyDownHandler);
    }
}

不要忘记在 Unloaded 中删除处理程序。

于 2017-08-22T13:56:56.013 回答