如何:将文本修饰用于超链接
Hyperlink 对象是一个内联级别的流内容元素,允许您在流内容中承载超链接。 默认情况下,Hyperlink 使用 TextDecoration 对象来显示下划线。 实例化 TextDecoration 对象可能会大幅降低性能,使用了许多 Hyperlink 对象时尤其如此。 如果您使用大量 Hyperlink 元素,则可能需要考虑仅在触发某个事件(如 MouseEnter 事件)时才显示下划线。
在下面的示例中,“My MSN”(我的 MSN)链接的下划线是动态的,它仅在触发 MouseEnter 事件时才出现。
用 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>
下面的代码示例演示如何在触发 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;
}