[英]WP7 - ContextMenu doesn't show on Hyperlink
我正在嘗試以編程方式將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事件根本不會觸發。
有人可以幫助我嗎? 謝謝。
您無法在Hyperlink
上執行ContextMenu
。 不過,您可以在HyperlinkButton
上執行此操作。 我不確定原因,但確實可以。 根據您要執行的操作, HyperlinkButton
可能一直是您想要的( Hyperlink
通常僅在文本文檔內部使用)。
在閱讀Daniel Vaughan撰寫的Windows Phone 7.5 Unleashed書時,我才找到了答案。 我的問題是我需要在RichTextBox中添加超鏈接,並且只能使用內聯顯示文本。 超鏈接是一個內聯,但不支持ContextMenu。 正如Tim所建議的,我需要使用HyperlinkButton。 解決方案是有一個名為InlineUIContainer的類。 所以這
var inline = new InlineUIContainer { Child = SomeHyperlinkButton }
幫了我大忙。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.