是否可以在 Silverlight 中选择性地为标签着色?

发布于 2024-08-23 22:21:08 字数 179 浏览 8 评论 0原文

例如,如果我有一个标签:

Blah blah bladity blah

我想要这个标签的前 10%,这样字体颜色应该是红色,其余的应该是绿色。

这可能意味着它会给 a 的 BL 和 PART 着色。基本上是按像素进行字体着色,而不是按字符进行着色。这可能吗?如何实现?

For instance, if I have a label:

Blah blah bladity blah

I want the first 10% of this label, such that the font color should be red, and the rest should be green.

This perhaps means it would color the Bl and PART of the a. Basically pixel-wise font coloring instead of character-wise. Is this possible and how would is be accomplished?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

记忆で 2024-08-30 22:21:08

是的,它会是这样的:

<Canvas>
    <dataInput:Label Background="White" >
    <dataInput:Label.Foreground>
        <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
            <GradientStop Color="Red" Offset="0.1"/>
            <GradientStop Color="Green" Offset="0.1"/>
        </LinearGradientBrush>
    </dataInput:Label.Foreground>
    Blah blah bladity blah
    </dataInput:Label>
</Canvas>

为了产生渐变效果,您需要将两个Offset设置为相同的值。

注意:在这个字体大小(标准,没有改变)中,“B”和“l”是红色的,只有一小部分“a”是红色的。但 Offset 中的“0.1”表示 10%,因此您可以减小字体大小或更改 Offset 值。

Yeah, it would be like this:

<Canvas>
    <dataInput:Label Background="White" >
    <dataInput:Label.Foreground>
        <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
            <GradientStop Color="Red" Offset="0.1"/>
            <GradientStop Color="Green" Offset="0.1"/>
        </LinearGradientBrush>
    </dataInput:Label.Foreground>
    Blah blah bladity blah
    </dataInput:Label>
</Canvas>

In order to not have the gradient effect, you need to set both Offset to the same value.

Note: In this font size (standard, nothing changed) the "B" and "l" are red and only a small sliver of "a" is. But the "0.1" in Offset means 10%, so you can either decrease font size or change the Offset value.

春风十里 2024-08-30 22:21:08

是的 - 您应该使用带有文本前景色的渐变画笔。

<TextBlock Text="Blah blah bladity blah">
    <TextBlock.Foreground>
        <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
       <GradientStop Color="Red" Offset="0.1"/>
       <GradientStop Color="Green" Offset="0.1"/>
        </LinearGradientBrush>
    </TextBlock.Foreground>
</TextBlock>

Yes - you should use a Gradient brush with the Foreground color of the Text.

<TextBlock Text="Blah blah bladity blah">
    <TextBlock.Foreground>
        <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
       <GradientStop Color="Red" Offset="0.1"/>
       <GradientStop Color="Green" Offset="0.1"/>
        </LinearGradientBrush>
    </TextBlock.Foreground>
</TextBlock>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文