2009-04-16 16 views
16

En un formulario WPF, tengo el siguiente TextBlock. Cuando muevo el mouse sobre él, me gustaría ver el texto del TextBlock subrayado. ¿Cómo puedo hacer eso? Intenté con TextBlock.Triggers, pero no funcionó.Cómo subrayar un TextBlock en un MouseEnter

¡Gracias!

Respuesta

27

Usar un estilo:

<TextBlock Text="Hurrah"> 
    <TextBlock.Style> 
    <Style TargetType="TextBlock"> 
     <Style.Triggers> 
     <Trigger Property="IsMouseOver" Value="True"> 
      <Setter Property="TextDecorations" Value="Underline" /> 
     </Trigger> 
     </Style.Triggers> 
    </Style> 
    </TextBlock.Style> 
</TextBlock> 

(. Estilo se muestra en línea para mayor brevedad; extraer en un recurso si usted está planeando para reutilizarlo)

+0

Esto fue realmente útil. Pero, ¿y si necesito subrayar solo el primer personaje? –

+1

@conqenator: Entonces necesitaría dividir los bits con formato diferente en varias líneas: ' H urrah' y aplicar el estilo a la ejecución en lugar del TextBlock (como mostrado). El estilo sería el mismo excepto un TargetType of Run; y definitivamente querrías extraerlo en un recurso porque escribirlo en línea opacaría la legibilidad del XAML. – itowlson

+0

Gracias! Eso lo hizo. :) –

Cuestiones relacionadas