2010-03-06 13 views
5

Por ejemplo, si tengo una etiqueta:¿Es posible teñir varias veces una etiqueta en Silverlight?

Blah blah bladity blah

Quiero el primer 10% de esta etiqueta, de tal manera que el color de fuente debe ser de color rojo, y el resto debe ser verde.

Esto quizás signifique que colorearía el Bl y la PARTE del a. Coloreado de fuente básicamente en píxeles en lugar de carácter. ¿Es esto posible y cómo se lograría?

Respuesta

5

Sí, sería así:

<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> 

Para no tienen el efecto de degradado, es necesario establecer tanto Offset en el mismo valor.

Nota: En este tamaño de fuente (estándar, nada ha cambiado) la "B" y la "l" son rojas y solo una pequeña porción de "a". Pero el "0.1" en Offset significa 10%, por lo que puede disminuir el tamaño de la fuente o cambiar el valor de Offset.

+0

¡Parece que ambos obtuvimos la misma solución! –

+0

+1 Buen uso de la entrada de datos: control de etiqueta. –

3

Sí, debe usar un pincel de degradado con el color frontal del texto.

<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> 
Cuestiones relacionadas