FlowDocument
を読み込んだ後、LogicalTreeHelper
を使用してすべてのUIElementを列挙できます。すべてのハイパーリンクを見つけることができます。その後、単に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>
おかげであなたの助けのためにたくさん! – SantiagoARG