【问题标题】:mark specific content of a richTextBox [closed]标记richTextBox的特定内容[关闭]
【发布时间】:2013-02-12 09:48:24
【问题描述】:

我想要richTextBox 加载后的特定内容标记颜色(某些单词的“背景”发生变化)。当我单击一个按钮时,例如要标记的词汽车。现在我发现我必须为我的目的重新构建这段代码。

public bool DoSearch(RichTextBox richTextBox, string searchText, bool searchNext)
       {
            TextRange searchRange;

            // Get the range to search
            if (searchNext)
                searchRange = new TextRange(richTextBox.Selection.Start.GetPositionAtOffset(1),
                                            richTextBox.Document.ContentEnd);
            else
                searchRange = new TextRange(richTextBox.Document.ContentStart, 
                                            richTextBox.Document.ContentEnd);

            // Do the search
            TextRange foundRange = FindTextInRange(searchRange, searchText);
            if (foundRange == null)
                return false;

            // Select the found range
            richTextBox.Selection.Select(foundRange.Start, foundRange.End);
            return true;
        }

        public TextRange FindTextInRange(TextRange searchRange, string searchText)
        {
            // Search the text with IndexOf
            int offset = searchRange.Text.IndexOf(searchText);
            if (offset < 0)
                return null;  // Not found

            // Try to select the text as a contiguous range
            for (TextPointer start = searchRange.Start.GetPositionAtOffset(offset); 
                             start != searchRange.End; 
                             start = start.GetPositionAtOffset(1))
            {
                TextRange result = new TextRange(start, start.GetPositionAtOffset(searchText.Length));
                if (result.Text == searchText)
                    return result;

            }
            return null;
        }

有人可以帮我吗?

【问题讨论】:

  • 我想从richtextbox 中的单词更改背景。使用此代码,我可以搜索一个单词,现在我必须将其插入流文档中,更改背景并将其带回之前相同位置的 Richtextbox。但我不知道我该怎么做。
  • FlowDocument 来自哪里?你当然不需要那个。
  • 我认为我需要一个FlowDocument。在程序启动时,我在Richtextbox 中加载了一个带有FlowDocument 的.txt 文件
  • 这个问题帮助了我...傻瓜们对WPF一无所知。像他们这样的一些人正在破坏 stackoverflow...

标签: c# wpf search richtextbox flowdocument


【解决方案1】:

请试试这个链接,它包含一个功能 HighlightPhrase 可以改变富文本框中特定单词的颜色。按照这个函数尝试研究如何改变背景。

How to Change The Color of Specific Word in Rich textbox using C#

【讨论】:

  • 它适用于 windows 窗体,但 SelectionStart、SelectionColor、SelectionLength 在 WPF 中不可用
  • 它在 WPF 中是如何工作的?
猜你喜欢
  • 2013-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-25
  • 1970-01-01
  • 2012-12-20
相关资源
最近更新 更多