簡體   English   中英

WP7-ContextMenu在超鏈接上不顯示

[英]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所建議的,我需要使用HyperlinkBut​​ton。 解決方案是有一個名為InlineUIContainer的類。 所以這

var inline = new InlineUIContainer { Child = SomeHyperlinkButton }

幫了我大忙。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM