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