Мне нужен способ выделить текст в текстовом блоке или текстовом поле Silverlight. Это сделано для выделения результатов поиска, например, если вы попытаетесь нажать Ctrl + F в браузере и выполнить поиск слова, браузер выделит совпадающие слова.
Выделите слово в текстовом блоке silverlight
Ответы (2)
В текстовом блоке вы можете использовать Run
для выделения слов, например: -
<TextBlock>Ordinary Text <Run Foreground="Red">Highlighted Text</Run> More Ordinary Text</TextBlock>
Обратите внимание на использование символьной сущности Xml  
, которая является неразрывным пробелом, что необходимо, потому что синтаксический анализ Xaml (в результате его зависимости от синтаксического анализа XML) означает, что пробел непосредственно перед <
и пробел сразу после >
игнорируется. .
person
AnthonyWJones
schedule
16.02.2011
Привет, Энтони, спасибо за ответ, но мне нужно, чтобы он выделил фон, не изменяя текст переднего плана.
- person Lance; 21.02.2011
У меня была аналогичная проблема, и я нашел этот вопрос на форуме Silverlight. Может, это могло бы тебе помочь.
Вот как я бы реализовал функцию поиска:
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.
}
}
person
mrtaikandi
schedule
22.02.2011
Что мне нужно здесь реализовать, так это функцию поиска. Вот почему мне нужно выделить фон.
- person Lance; 23.02.2011