博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF控件 RichTextBox查找定位匹配字符
阅读量:6154 次
发布时间:2019-06-21

本文共 1624 字,大约阅读时间需要 5 分钟。

private void Search_Click(object sender, RoutedEventArgs e)//查询定位文本{    List
textRanges = FindWordFromPosition(richTextBox1.Document.ContentStart, txtSearch.Text); foreach (var range in textRanges) { range.ApplyPropertyValue(TextElement.ForegroundProperty, new SolidColorBrush(Colors.Red)); //range.ApplyPropertyValue(TextElement.FontWeightProperty, FontWeights.Bold); //range.ApplyPropertyValue(TextElement.BackgroundProperty, new SolidColorBrush(Colors.PowderBlue)); }}

 

List
FindWordFromPosition(TextPointer position, string word){ List
matchingText = new List
(); while (position != null) { if (position.GetPointerContext(LogicalDirection.Forward) == TextPointerContext.Text) { //带有内容的文本 string textRun = position.GetTextInRun(LogicalDirection.Forward); //查找关键字在这文本中的位置 int indexInRun = textRun.IndexOf(word); int indexHistory = 0; while (indexInRun >= 0) { TextPointer start = position.GetPositionAtOffset(indexInRun + indexHistory); TextPointer end = start.GetPositionAtOffset(word.Length); matchingText.Add(new TextRange(start, end)); indexHistory = indexHistory + indexInRun + word.Length; textRun = textRun.Substring(indexInRun + word.Length);//去掉已经采集过的内容 indexInRun = textRun.IndexOf(word);//重新判断新的字符串是否还有关键字 } } position = position.GetNextContextPosition(LogicalDirection.Forward); } return matchingText;}

           

 

转载地址:http://tqffa.baihongyu.com/

你可能感兴趣的文章
检测oracle数据库坏块的方法
查看>>
SQL server 安装教程
查看>>
Linux下ftp和ssh详解
查看>>
跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击
查看>>
js时间和时间戳之间如何转换(汇总)
查看>>
js插件---图片懒加载echo.js结合 Amaze UI ScrollSpy 使用
查看>>
java中string和int的相互转换
查看>>
P1666 前缀单词
查看>>
HTML.2文本
查看>>
Ubuntu unity安装Indicator-Multiload
查看>>
解决Eclipse中新建jsp文件ISO8859-1 编码问题
查看>>
7.对象创建型模式-总结
查看>>
【论文阅读】Classification of breast cancer histology images using transfer learning
查看>>
移动端处理图片懒加载
查看>>
jQuery.on() 函数详解
查看>>
谈缓存和Redis
查看>>
【转】百度地图api,根据多点注标坐标范围计算地图缩放级别zoom自适应地图
查看>>
用户调研(补)
查看>>
ExtJS之开篇:我来了
查看>>
☆1018
查看>>