Гиперссылка. Нажмите не выполняется - PullRequest
0 голосов
/ 22 января 2012

Я пишу приложение для 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 ]

2 голосов
/ 01 февраля 2012

Работает следующий код:

            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 голосов
/ 27 января 2012

Следующий код запускается на устройстве. 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);
0 голосов
/ 23 января 2012

Вы должны использовать HyperlinkButton Class , Гиперссылка - это класс, используемый для визуализации документов в расширенном текстовом формате.

...