基于部分字母位置的文本块前景色

Foreground colour of textblock based on position of part of the letter

工作中的火星栏挑战是仅使用 Xaml,默认情况下将文本块的以下文本设为灰色。但是,从字母 "e" 的一半到最后一个字符“1”的一半使颜色变为红色。

正文为"Item 1"。所以,"I" 和 "t" 都是灰色的,但是 "e" 的前半部分是红色,"m" 全部是红色,然后是“1”的一半红色和“的后半部分” 1" 灰色。

我不知道这个。

你有没有想过这样的事情?

<TextBlock FontSize="72">
    <Run Foreground="Gray" Text="It" /><Run Text="e">
        <Run.Foreground>
            <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
                <GradientStop Color="Gray" Offset="0"/>
                <GradientStop Color="Gray" Offset="0.5" />
                <GradientStop Color="Red" Offset="0.5" />
                <GradientStop Color="Red" Offset="1" />
            </LinearGradientBrush>
        </Run.Foreground>
    </Run><Run Text="m" Foreground="Red" /><Run Text=" 1">
        <Run.Foreground>
            <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
                <GradientStop Color="Red" Offset="0"/>
                <GradientStop Color="Red" Offset="0.5" />
                <GradientStop Color="Gray" Offset="0.5" />
                <GradientStop Color="Gray" Offset="1" />
            </LinearGradientBrush>
        </Run.Foreground>
    </Run>
</TextBlock>

结果: