WPF中让TextBlock每一个字符显示不同的颜色

Posted lonelyxmas

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF中让TextBlock每一个字符显示不同的颜色相关的知识,希望对你有一定的参考价值。

原文:WPF中让TextBlock每一个字符显示不同的颜色

XAML代码:

<TextBlock x:Name="tb">
              <Run Foreground="Red">R</Run>
              <Run Foreground="Green">G</Run>
              <Run Foreground="Blue">B</Run>
              <Run Text="Gradient">
                 <Run.Foreground>
                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                       <GradientStop Color="#FF000000" Offset="0"/>
                       <GradientStop Color="#FFFFFFFF" Offset="1"/>
                   </LinearGradientBrush>
              </Run.Foreground>
         </Run>
</TextBlock>

在后台的逻辑代码中应访问TextBlock的Inlines集合来得到它所包含的字串..如果你用Text属性是取不到值的..

CS代码:

string str1 = this.tb.Text;
string str2 = "";
foreach (Run r in tb.Inlines)
{
    str2 += r.Text;
}
MessageBox.Show("str1:["+str1+"]         str2:["+str2+"]");

运行结果:

TextBlock的显示效果:技术分享图片

显示TextBlock内的字符串:
技术分享图片


以上是关于WPF中让TextBlock每一个字符显示不同的颜色的主要内容,如果未能解决你的问题,请参考以下文章

WPF中让TextBlock每一个字符显示不同的颜色

WPF中使用TextBlock显示长字符串的处理方法

WPF实现滚动显示的TextBlock

WPF控件TextBlock中文字自动换行

WPF实现滚动显示的TextBlock

WPF - 无法从字符串中解析 TextBlock 元素