Поделиться через


Практическое руководство. Использование оформления текста с гиперссылкой

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

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

Гиперссылки, определенные с объектом TextDecorations

Гиперссылки, отображающие TextDecorations

Пример

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

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

<Run Text=" | " />

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

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

        ' 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
// 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;
}

См. также

Задачи

Практическое руководство. Создание оформления текста

Ссылки

TextDecoration

Hyperlink

Основные понятия

Улучшение производительности приложений WPF