查找和替换文本和样式
RadWordsProcessing控件中的字符串搜索功能RadFlowDocument实例并替换所有匹配项。该库还允许您单独替换匹配的样式。
可以使用。搜索和替换文本或样式RadFlowDocumentEditor.本文列出了可用的方法,并描述了如何使用它们。此特性自R2 2021发布版本。
找到文本
RadFlowDocumentEditor暴露了FindAll ()方法使您能够查找字符串的所有实例。您可以在以下重载之间选择:
FindAll(string text, bool matchCase=true, bool matchWholeWord=false):查找指定字符串的所有出现情况。最后两个参数是可选的。如果不设置这些参数,则matchCase的默认值为true, matchWholeWord的默认值为false。
FindAll正则表达式(Regex):找到传递的所有匹配项正则表达式.
的集合FindResult实例,这些实例反过来公开以下属性:
运行的集合运行包含搜索文本的。
RelativeStartIndex:获取第一个Run中搜索文本中第一个字符的索引。
RelativeEndIndex:获取最后一次运行中搜索文本中最后一个字符的索引。
FullMatchText:获取匹配的文本。
示例1控件创建RadFlowDocumentEditor实例并使用它来查找单词“code”的所有匹配项。
例1:查找文本
RadFlowDocumentEditor编辑器=新的RadFlowDocumentEditor(文档);// document是RadFlowDocument类的实例ReadOnlyCollection findResults = editor。FindAll("code", matchCase: true, matchWholeWord: true);
替换文本
方法可查找字符串的所有实例并将其替换为另一个实例ReplaceText ()的方法RadFlowDocumentEditor.该方法具有两个接受不同参数的重载:
void ReplaceText(string oldText, string newText, bool matchCase=true, bool matchWholeWord=false):将一个字符串的所有出现替换为另一个字符串。最后两个参数是可选的。如果不设置这些参数,则matchCase的默认值为true, matchWholeWord的默认值为false。
void ReplaceText(Regex, string newText):替换指定的所有匹配项正则表达式用新的文字。
示例2控件创建RadFlowDocumentEditor实例并使用它将单词“code”的所有匹配项替换为短语“source code”。
例2:替换文本
RadFlowDocumentEditor编辑器=新的RadFlowDocumentEditor(文档);// document是RadFlowDocument类编辑器的实例。ReplaceText("code", "source code", matchCase: true, matchWholeWord: true);
替换样式
RadFlowDocumentEditor使您能够格式化文档中出现的所有字符串。方法的一个重载可以实现这一点ReplaceStyling ()方法。重载接受允许修改的Action委托CharacterProperties火柴的。
void ReplaceStyling(string searchedText,动作
replacePropertiesAction): 将Action委托中的字符属性更改应用到所有匹配字符串的大小写。void ReplaceStyling(string searchedText, bool matchCase, bool matchWholeWord, Action
replacePropertiesAction): 将Action委托中的字符属性更改应用到所有匹配项。接受布尔参数,这些参数指定是否应该匹配大小写以及是否只应该设置整个单词的样式。void ReplaceStyling(Regex Regex, Action
replacePropertiesAction): 属性的所有匹配项应用操作委托中的字符属性更改正则表达式.
示例3演示如何将红色高亮颜色应用到单词“alert”的所有出现处。
例3:替换字符属性
RadFlowDocumentEditor编辑器=新的RadFlowDocumentEditor(文档);编辑器。ReplaceStyling("text", new Action((properties) => {properties. highlightcolor . localvalue = Colors.Red;}));