如何:将文本修饰用于超链接

Hyperlink 对象是一个内联级别的流内容元素,允许您在流内容中承载超链接。 默认情况下,Hyperlink 使用 TextDecoration 对象来显示下划线。 实例化 TextDecoration 对象可能会大幅降低性能,使用了许多 Hyperlink 对象时尤其如此。 如果您使用大量 Hyperlink 元素,则可能需要考虑仅在触发某个事件(如 MouseEnter 事件)时才显示下划线。

在下面的示例中,“My MSN”(我的 MSN)链接的下划线是动态的,它仅在触发 MouseEnter 事件时才出现。

用 TextDecorations 定义的超链接

显示 TextDecoration 的超链接

示例

下面的标记示例演示了一个使用和未使用下划线定义的 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>

下面的代码示例演示如何在触发 MouseEnter 事件时为 Hyperlink 创建下划线,以及如何在触发 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 应用程序性能