Практическое руководство. Определение того, подчеркнута ли ссылка

Объект Hyperlink является элементом размещения содержимого встроенного уровня, позволяющим размещать гиперссылки в содержимом нефиксированного формата. По умолчанию Hyperlink использует объект TextDecoration для отображения подчеркивания. Объекты TextDecoration могут требовать высокой производительности для создания экземпляров, особенно если у вас много объектов Hyperlink. Если вы широко используете элементы Hyperlink, рассмотрите возможность отображать подчеркивание только при возникновении события, такого как MouseEnter.

В следующем примере подчеркивание ссылки My MSN является динамическим — оно появляется только при активации события MouseEnter.

Hyperlinks displaying TextDecorations

Пример

В следующем примере разметки демонстрируется определение элемента Hyperlink с подчеркиванием и без него.

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

В следующем примере кода показано, как создать подчеркивание для Hyperlink в событии MouseEnter и удалить его в событии MouseLeave.

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

См. также