2012-01-21 36 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);