C# Windows Phone 8超链接。单击事件不触发
我正在构建一个聊天应用程序,我正在解析出链接,并使用超链接将它们添加到聊天室视图中。这些超链接设置了以下事件处理程序:C# Windows Phone 8超链接。单击事件不触发,c#,wpf,windows-phone-8,hyperlink,windows-phone,C#,Wpf,Windows Phone 8,Hyperlink,Windows Phone,我正在构建一个聊天应用程序,我正在解析出链接,并使用超链接将它们添加到聊天室视图中。这些超链接设置了以下事件处理程序: void urlLink_Click(object sender, RoutedEventArgs e) { try { Hyperlink link = sender as Hyperlink; this.chatUI.DisplayWebBrowser(link.Navigate
void urlLink_Click(object sender, RoutedEventArgs e)
{
try
{
Hyperlink link = sender as Hyperlink;
this.chatUI.DisplayWebBrowser(link.NavigateUri);
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
不过,事件是否被触发似乎是随机的。单击时,某些链接将按预期工作,而某些链接将不工作。一些链接一开始可以工作,但在收到更多消息后,它们就停止工作。有人知道原因是什么以及如何解决吗?以下是创建超链接控件的方式:
newSpan = new Span();
Run urlRun = new Run();
urlRun.Text = urlMatches[i].Value;
Hyperlink urlLink = new Hyperlink();
urlLink.NavigateUri = new Uri(urlMatches[i].Value, UriKind.Absolute); // Add URI to the Hyperlink control
urlLink.Click += urlLink_Click; // Add event handler to control
urlLink.Inlines.Add(urlRun); // Add text to Hyperlink
我也有同样的问题。通过一些尝试和错误,我修复了它。。。通过将虚拟空命令指定给超链接。不要让我解释,我仍然不明白它是如何修复任何东西的,但就我而言,它确实做到了 首先,声明一个
DummyCommand
类:
/// <summary>
/// Workaround for the hyperlink click issue. What the hell is going on?
/// </summary>
public class DummyCommand : ICommand
{
public bool CanExecute(object parameter)
{
return true;
}
public void Execute(object parameter)
{
}
public event EventHandler CanExecuteChanged;
}
然后稍微搔搔你的头,接着做别的事情。这很有效。我真的抓狂了,非常感谢库奇!也为我工作。未附加虚拟命令时,不会触发任何事件。但是当附加时,click事件和commands execute方法都会被激发。
newSpan = new Span();
Run urlRun = new Run();
urlRun.Text = urlMatches[i].Value;
Hyperlink urlLink = new Hyperlink();
urlLink.NavigateUri = new Uri(urlMatches[i].Value, UriKind.Absolute); // Add URI to the Hyperlink control
urlLink.Click += urlLink_Click; // Add event handler to control
urlLink.Command = new DummyCommand(); // Workaround for the Click not been triggered
urlLink.Inlines.Add(urlRun); // Add text to Hyperlin