ContextMenu をハイパーリンクにプログラムで追加しようとしています。ドキュメントとフォーラムで検索しましたが、正しい解決策は次のようになります。
var link = new Hyperlink();
link.Inlines.Add(new Run() { Text = linkText });
link.FontWeight = FontWeights.Bold;
link.TargetName = linkText;
link.Click += new RoutedEventHandler(link_Click);
ContextMenu menu = new ContextMenu();
MenuItem item = new MenuItem();
item.Click += new RoutedEventHandler(CopyLink);
item.Header = "copy link";
item.Tag = linkText;
menu.Items.Add(item);
ContextMenuService.SetContextMenu(link, menu);
このコードはコンパイルされ、例外はスローされません。私がテストしたところ、ContextMenu が実際にハイパーリンクに追加されました。問題は、いつでも表示されないことです。いつでもリンクを長押ししても、メニューが表示されません。また、GestureService と GestureListener でリスナーを追加しようとしましたが、Hold イベントがまったく発火しません。
誰でも私を助けることができますか?ありがとう。