zoukankan      html  css  js  c++  java
  • WPF的RichTextBox中查找字符串位置

    已经琢磨2天了,一直没明白如何在WPF的RichTextBox中查找一个字符串的位置,最后在google上找到了一个牛人的解决办法,收藏过来,留着备用。

    private List<TextRange> FindAllMatchedTextRanges(RichTextBox richBox, string keyword)
            {
                List
    <TextRange> trList = new List<TextRange>();
               
    //设置文字指针为Document初始位置
                TextPointer position = richBox.Document.ContentStart;
               
    while (position != null)
                {
                   
    //向前搜索,需要内容为Text
                    if (position.GetPointerContext(LogicalDirection.Forward) == TextPointerContext.Text)
                    {
                       
    //拿出Run的Text
                        string text = position.GetTextInRun(LogicalDirection.Forward);
                       
    //可能包含多个keyword,做遍历查找
                        int index = 0;
                       
    while (index < text.Length)
                        {
                            index
    = text.IndexOf(keyword, index);
                           
    if (index == -1)
                            {
                               
    break;
                            }
                           
    else
                            {
                               
    //添加为新的Range
                                TextPointer start = position.GetPositionAtOffset(index);
                                TextPointer end
    = start.GetPositionAtOffset(keyword.Length);

              trList.Add(new TextRange(start, end));
                                index
    += keyword.Length;
                            }
                        }
                    }
                   
    //文字指针向前偏移
                    position = position.GetNextContextPosition(LogicalDirection.Forward);
                }
               
    return trList;
            }

  • 相关阅读:
    c# 实现鼠标拖拽TreeView节点
    代码生成组合编码
    .net分布式错误,DTC出错问题
    乱七八糟?Ⅱ.哈哈
    用SQL只获取日期的方法
    C#学习之接口
    webservice 上传图片、下载图片
    Python包系列
    多线程多进程模块
    第九章Admin后台系统
  • 原文地址:https://www.cnblogs.com/xiarifeixue/p/1905157.html
Copyright © 2011-2022 走看看