Je souhaite afficher plusieurs actions dans un ContextMenu attaché à un lien hypertexte dans un FlowDocument. Certaines de ces actions dépendent de la valeur de la propriété NavigateUri de l'objet Lien hypertexte. Comment puis-je obtenir une référence à l'hyperlien que l'utilisateur a cliqué avec le bouton droit de la souris?Utilisation de menus contextuels sur des liens hypertexte dans un document de flux
Malheureusement, ce n'est pas aussi simple que d'utiliser la propriété PlacementTarget. Comme cela (sans réponse) question dans les forums MSDN noté, le PlacementTarget du ContextMenu ne pointe pas à l'élément Hyperlink, mais à l'ensemble FlowDocumentScrollViewer: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/3ab90017-dea8-497c-a937-87a403cb24e0
Je besoin d'un autre moyen de savoir qui Hyperlink l'utilisateur a cliqué .
Notez que mon menu contextuel est défini comme une ressource dans le UserControl contenant mon FlowDocumentScrollViewer et attaché à chaque Hyperlink à l'aide d'un poseur de propriété de style, comme ceci:
<UserControl.Resources>
<ContextMenu x:Key="contextMenu">
<MenuItem Name="mnuOpen" Header="_Open Link" Click="mnuOpen_Click" />
<MenuItem Name="mnuView" Header="_View Properties" Click="mnuView_Click" />
</ContextMenu>
<Style TargetType="Hyperlink">
<Setter Property="ContextMenu" Value="{DynamicResource contextMenu}" />
</Style>
</UserControl.Resources>
Les conseils seraient grandement appréciés!
Merci, @Quartermeister. Je savais qu'il devait y avoir un moyen de le faire. – dthrasher