C# WPF 富文本框类型行为更改

本文关键字:类型 WPF 文本 | 更新日期: 2023-09-27 18:30:58

我最近将一个文本框(我用作搜索框)转换为RichTextBox,以便在框中加粗一些包含的单词。这样做后,我注意到了一些"错误"。我想知道它们是否是故意的,以及如何覆盖它们。

第一个也是最重要的问题只发生在我在盒子上调用SelectAll()以提取其在 keyDown 事件上的信息时:

((RichTextBox)sender).SelectAll();
string search = ((RichTextBox)sender).Selection.Text;

这阻止了我在 RTB 中写的不仅仅是一个字符。我认为它使我的文本处于选中状态,并在每次按键时覆盖它。我找不到任何DeSelect()方法,那么是否有另一种方法可以获得此字符串数据以防止此问题。我需要字符串传递给正则表达式。

其次,RTB 仅在双击时将 IBeam 扔进盒子。有没有办法重新创建单击即可进入的 TextBox 的行为(或者默认情况下应该在单击时输入?

C# WPF 富文本框类型行为更改

不要全选,而是获取内容并将流文档转换为纯文本。

FlowDocument doc =((RichTextBox)sender).Document;
string search = new TextRange(doc.ContentStart, doc.ContentEnd).Text;

将流文档转换为简单文本