我正在编写一个Windows Phone Mango应用程序。我有一个包含电子邮件地址的超链接。我想让它显示一个消息框:
Hyperlink href = new Hyperlink();
href.Click += (s, r) =>
{
MessageBox.Show("href clicked");
};
// add href to RichTextBox
当我点击模拟器中的超链接时,没有任何反应。调试器中会遇到click +=
行,但new EmailComposeTask()
行不会。
我做错了什么? Click
不是我想要的事件吗?
更新:我将EmailComposeTask
切换为MessageBox
,以验证此问题与未在模拟器上运行的电子邮件撰写任务无关。我在我的设备上重现了这个问题。
答案 0 :(得分: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
会创建一个手势监听器,如果它还不存在的话。
答案 1 :(得分:0)
您应该使用HyperlinkButton Class,Hyperlink是一个用于富文本文档呈现的类。
答案 2 :(得分: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);