【发布时间】: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