突出显示Silverlight中的文本(背景颜色为黄色)

问题描述:

我需要突出显示Silverlight文本框或RichTextBox中的文本。我试着只是添加标记RTB的文本串,但他们只是在像文本显示:突出显示Silverlight中的文本(背景颜色为黄色)

Some <Bold>text</Bold> in a RTB 

我已经试过只选择文本是这样的:

myRTB.Selection.Select(textPtr1, textPtr2); 

在标准的蓝色ish颜色亮点。我需要使背景颜色呈黄色,但看起来像我只能更改运行的前景颜色。这是为什么,还有我的任何想法?

UPDATE:

我只使用一个TextBlock与增加了运行这样一个值转换器的尝试:

return String.Format("<Run Foreground=\"Red\">{0}</Run>", value.ToString()); 

,但仍然将TextBlock只显示标签,而不是格式化的文本。

+0

如果我不wrogn:文本 – NestorArturo

+0

添加任何XML标签的RTB绑定的文本,只是使标签在文本显示RTB。 – Graeme

+0

仍在寻找解决方案,以在Silverlight中以编程方式突出显示文本。任何接受者? – Graeme

我需要强调的文字在Silverlight的TextBlock

您可以用边框包住textBlock,并改变mouseEntermouseLeave边框颜色。

XAML

<Border x:Name="myTxtBorder" MouseEnter="myTxtBorder_MouseEnter" MouseLeave="myTxtBorder_MouseLeave"> 
     <TextBlock Text="Hover me and yellow you'll see!"/> 
    </Border> 

后面的代码:

Private Sub myTxtBorder_MouseEnter(sender As System.Object, e As System.Windows.Input.MouseEventArgs) 
     myTxtBorder.Background = New SolidColorBrush(Colors.Yellow) 
    End Sub 

    Private Sub myTxtBorder_MouseLeave(sender As System.Object, e As System.Windows.Input.MouseEventArgs) 
     myTxtBorder.Background = New SolidColorBrush(Colors.White) 
    End Sub 
+0

我只需要突出显示某些单词 - 所以我需要在运行时即时将边框添加到这些特定单词中。我怎样才能做到这一点? – Graeme

+0

@Graeme:使用边框方法,您需要将要突出显示的单词提取到单独的textBlock中,并用边框包裹它。如果你有很多文本,你会得到很多控制,这不是一件好事。你处理了多少文字? – MichaelS

+0

文本块位于列表框中,每个文本块将包含几百个单词。列表中可能有20个项目,每个项目有2或3个字符发送给hightlight。 – Graeme

的Liquid.RichTextBox可以帮助你。

http://vectorlight.net/silverlight/controls/rich_textbox.aspx