Como especificar se um hiperlink está sublinhado

O Hyperlink objeto é um elemento de conteúdo de fluxo embutido que permite hospedar hiperlinks dentro do conteúdo de fluxo. Por padrão, Hyperlink usa um objeto para exibir um TextDecoration sublinhado. TextDecoration objetos podem ser intensivos em desempenho para instanciar, especialmente se você tiver muitos Hyperlink objetos. Se você fizer uso extensivo de Hyperlink elementos, convém considerar mostrar um sublinhado somente ao acionar um evento, como o MouseEnter evento.

No exemplo a seguir, o sublinhado do link "Meu MSN" é dinâmico, ou seja, só aparece quando o MouseEnter evento é acionado.

Hyperlinks displaying TextDecorations

Exemplo

O exemplo de marcação a seguir mostra um Hyperlink definido com e sem sublinhado:

<!-- Hyperlink with default underline. -->
<Hyperlink NavigateUri="http://www.msn.com">
  MSN Home
</Hyperlink>

<Run Text=" | " />

<!-- Hyperlink with no underline. -->
<Hyperlink Name="myHyperlink" TextDecorations="None"
           MouseEnter="OnMouseEnter"
           MouseLeave="OnMouseLeave"
           NavigateUri="http://www.msn.com">
  My MSN
</Hyperlink>

O exemplo de código a seguir mostra como criar um sublinhado para o Hyperlink no MouseEnter evento e removê-lo no MouseLeave evento.

// Display the underline on only the MouseEnter event.
private void OnMouseEnter(object sender, EventArgs e)
{
    myHyperlink.TextDecorations = TextDecorations.Underline;
}

// Remove the underline on the MouseLeave event.
private void OnMouseLeave(object sender, EventArgs e)
{
    myHyperlink.TextDecorations = null;
}
' Display the underline on only the MouseEnter event.
Private Overloads Sub OnMouseEnter(ByVal sender As Object, ByVal e As EventArgs)
    myHyperlink.TextDecorations = TextDecorations.Underline
End Sub

' Remove the underline on the MouseLeave event.
Private Overloads Sub OnMouseLeave(ByVal sender As Object, ByVal e As EventArgs)
    myHyperlink.TextDecorations = Nothing
End Sub

Confira também