2012-01-21 64 views
0

我正在寫一個Windows Phone芒果應用程序。我有一個包含電子郵件地址的超鏈接。我想讓它顯示在水龍頭一個消息框:Hyperlink.Click不被執行

Hyperlink href = new Hyperlink(); 
href.Click += (s, r) => 
{ 
    MessageBox.Show("href clicked"); 
}; 
// add href to RichTextBox 

當我點擊在模擬器中的超鏈接,沒有任何反應。在調試器中點擊click +=行,但new EmailComposeTask()行不是。

我在做什麼錯? Click不是我想要的事件嗎?

更新:我切換到EmailComposeTaskMessageBox驗證此問題不相關的電子郵件撰寫任務不是在模擬器上運行。我在我的設備上重現了此問題。

+0

[Is EmailComposeTask Class already working?](http://stackoverflow.com/questions/4307653/is-emailcomposetask-class-already-working) – ZippyV

+0

不可以 - 同樣的問題發生在MessageBox.Show( )'在設備上。 –

回答

2

下面的代碼工作:

  GestureService.GetGestureListener(href); // adding this makes it work 
      href.Click += (s, r) => 
      { 
       MessageBox.Show("href clicked"); 
       new EmailComposeTask() { To = entireLink.Value }.Show(); 

      }; 
      href.Inlines.Add(new Run() { Text = entireLink.Value }); 

GetGestureListener如果它不存在將創建一個手勢聽衆。

+0

解決了我的問題,謝謝! – Dan

0

您應該使用HyperlinkButton Class, Hyperlink是一個用於富文本文檔渲染的類。

+0

我想在RichTextBox中點擊鏈接。 HyperlinkBut​​ton不會與其他RichTextBox內容一樣流暢地(正確?)。 –

0

以下代碼在設備上運行。 text是RichTextBox對象。

var linkText = new Run() { Text = "Link text" }; 
var link = new Hyperlink(); 
link.Inlines.Add(linkText); 
link.Click += (o, e) => 
{ 
    MessageBox.Show("Link clicked"); 
}; 

var paragraph = new Paragraph(); 
paragraph.Inlines.Add(link); 

text.Blocks.Add(paragraph);