wpf - change - Cambiando el primer plano del hipervínculo sin perder el color de desplazamiento.
title bar color wpf (1)
Estoy escribiendo una aplicación WPF, y quiero que algunos de mis hipervínculos sean el azul predeterminado, y otros que sean verdes. No hay problema, solo puedo establecer el Foreground
:
<TextBlock><Hyperlink Foreground="#0C0">Mark as done</Hyperlink></TextBlock>
El problema es que cuando hago esto, el efecto de desplazamiento desaparece. En un hipervínculo normal, cuando muevo el mouse sobre el enlace, se vuelve rojo, y cuando muevo el mouse, vuelve a azul. Pero en un hipervínculo con la propiedad Foreground asignada, siempre es ese color: el rojo al pasar se suprime totalmente.
¿Cómo puedo cambiar el color de un hipervínculo sin perder el comportamiento y el color predeterminados de desplazamiento?
Establecer el primer plano directamente (como lo ha hecho) no funciona, y establecerlo en un estilo tampoco funciona, a menos que "derive" ese estilo del estilo de hipervínculo predeterminado (que debe incluir el activador OnMouseOver). Así que esto funciona:
<TextBlock>
<Hyperlink>
<Hyperlink.Style>
<Style TargetType="Hyperlink"
BasedOn="{StaticResource {x:Type Hyperlink}}">
<Setter Property="Foreground" Value="#0C0"/>
</Style>
</Hyperlink.Style>
Mark as done
</Hyperlink>
</TextBlock>
Extraer ese estilo de nuevo en los recursos de Windows y hacer referencia a él con una clave probablemente resultaría en un XAML más legible, pero el código anterior hace el trabajo.