超链接。点击未执行

时间:2012-01-21 23:45:50

标签: silverlight windows-phone

我正在编写一个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,以验证此问题与未在模拟器上运行的电子邮件撰写任务无关。我在我的设备上重现了这个问题。

3 个答案:

答案 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 ClassHyperlink是一个用于富文本文档呈现的类。

答案 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);