我正在尝试以编程方式将 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 事件根本不会触发。
任何人都可以帮助我吗?谢谢。