我需要一种方法来突出显示silverlight文本块或文本框中的文本。这是为了突出显示搜索结果,例如,如果您尝试在浏览器中按Ctrl + F并搜索单词,浏览器将突出显示匹配的单词。
答案 0 :(得分:2)
在文本块中,您可以使用Run
突出显示单词,例如: -
<TextBlock>Ordinary Text <Run Foreground="Red">Highlighted Text</Run> More Ordinary Text</TextBlock>
注意使用Xml字符实体 
这是非破坏性空间,这是必要的,因为Xaml解析(由于它依赖于XML解析)意味着直接在{{1之前的空白空间在忽略<
之后直接显示空格和空格。
答案 1 :(得分:0)
我遇到过类似的问题,并在Silverlight论坛中发现了这个问题。也许它可以帮助你。
How to Highlight a particular WRONG word in Textbox to make SpellCheck feature
这就是我实现搜索功能的方法:
private void Find(RichTextBox richTextBox, string term)
{
var builder = new StringBuilder();
var inlines = richTextBox.Blocks
.OfType<Paragraph>()
.SelectMany(paragraph => paragraph.Inlines);
foreach( var inline in inlines )
{
builder.Append(((Run)inline).Text);
}
var regex = new Regex(term);
var matchedStrings = regex.Matches(builder.ToString());
foreach( var item in matchedStrings )
{
// Whatever you want to do.
}
}