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;
            }

  • 相关阅读:
    iOS 开发学习-类的创建与实现,与java语言的对比
    iOS 开发学习-import和include的区别
    iOS开发学习-nonatomic和atomic的区别
    用户调查报告
    第一阶段冲刺的总结报告
    数1 游戏
    用户体验
    找水王2
    场景调研 persona
    返回一个二维整数数组中最大联通子数组的和
  • 原文地址:https://www.cnblogs.com/xiarifeixue/p/1905157.html
Copyright © 2011-2022 走看看