加载后FlowDocument
,您可以使用 枚举所有 UIElements LogicalTreeHelper
。它将允许您找到所有超链接。然后你可以简单地订阅他们的MouseEnter
活动。这是一个代码:
void SubscribeToAllHyperlinks(object sender, RoutedEventArgs e)
{
var hyperlinks = GetVisuals(this).OfType<Hyperlink>();
foreach (var link in hyperlinks)
link.MouseEnter += Hyperlink_MouseEnter;
}
public static IEnumerable<DependencyObject> GetVisuals(DependencyObject root)
{
foreach (var child in LogicalTreeHelper.GetChildren(root).OfType<DependencyObject>())
{
yield return child;
foreach (var descendants in GetVisuals(child))
yield return descendants;
}
}
private void Hyperlink_MouseEnter(object sender, MouseEventArgs e)
{
// Do whatever you want here
}
我已经使用以下 XAML 对其进行了测试:
<FlowDocumentReader>
<FlowDocument>
<Paragraph>
<Hyperlink>asf</Hyperlink>
</Paragraph>
</FlowDocument>
</FlowDocumentReader>