hipervinculo color change cambiar bar wpf hyperlink

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.