我可以在WPF中的单个TextBlock中使用多种颜色吗?

时间:2010-04-24 17:28:03

标签: c# wpf textblock

我在文本块中有一行文字如下:

“检测到[手势],精度为[准确度]”

在WPF中,我是否可以更改文本块中元素的颜色?我可以将文本块设置为多种颜色吗?例如,我希望整个TextBlock都是黑色的,除了手势名称,我希望它是红色的。

这可以在WPF中使用吗?

4 个答案:

答案 0 :(得分:14)

看看这是否有帮助:

 <TextBlock>
      Detected
      <TextBlock Text="{Binding Gesture}" Foreground="Red" />
      with an accuracy of
      <TextBlock Text="{Binding Accuracy}" />
 </TextBlock>

答案 1 :(得分:1)

您可以使用RichTextBox来设置IsReadOnly = true

答案 2 :(得分:1)

我知道这则帖子很旧,但是您是否尝试过? 实际上,您可以在TextBlock中以这种方式添加多色文本。

Xaml: <TextBlock x:Name="txt_Txt"/>


foreach (var itm5 in "! Hello World !; %Hello World%".Split(';'))
{
       if (txt_Txt.Inlines.Count() > 0)
           txt_Txt.Inlines.Add(new Run("\r\n"));
       foreach (var letter in itm5)
       {
            if (char.IsSymbol(letter))
               txt_Txt.Inlines.Add(new Run(letter.ToString()) { Foreground = Brushes.Red });
            else
                txt_Txt.Inlines.Add(new Run(letter.ToString()) { Foreground = Brushes.Black );
        }
}

答案 3 :(得分:0)

我认为您的意思是这样的(不是文本块的样式):

<TextBlock  FontSize="25" >
   <Run Text="Detected [" Foreground="Red"/><Run Text="gesture" Foreground="Gray"/>
   <Run Text="] with an accuracy of [" Foreground="Yellow"/><Run Text="accuracy]" Foreground="Green"/>
</TextBlock>

注意:“运行”标签之间的每个enter(或换行)之间都必须有空格。