Tag: navigateuri

TextBlock中的C#超链接:当我点击它时没有任何反应

在我的C#独立应用程序中,我想让用户点击一个可以启动他们喜爱的浏览器的链接。 System.Windows.Controls.TextBlock text = new TextBlock(); Run run = new Run(“Link Text”); Hyperlink link = new Hyperlink(run); link.NavigateUri = new Uri(“http://w3.org”); text.Inlines.Add(link); 链接显示正确。 当我将鼠标移到它上面时,链接变为红色。 问题:当我点击它时,没有任何反应。 我忘记了什么吗? 我是否需要实现某种方法才能真正打开链接?

当我调用NavigateService.Navigate()时,Windows Phone应用程序调用MapUri()两次

我最近添加了一个自定义UriMapper,用于在从IE打开文件时将文件保存到我的应用程序隔离存储中。 这个代码看起来像这样: class AssociationUriMapper : UriMapperBase { public override Uri MapUri(Uri uri) { var tempUri = uri.ToString(); if (tempUri.Contains(“/FileTypeAssociation”)) { int fileIdIndex = tempUri.IndexOf(“fileToken=”) + 10; string fileId = tempUri.Substring(fileIdIndex); SaveFileToIsolatedStorage(fileId); return new Uri(“/MainPage.xaml”, UriKind.Relative); } return uri; } } 在InitializePhoneApplication()中我做了一个 RootFrame.UriMapper = new AssociationUriMapper(); 当然,我已经将扩展标记添加到WMAppManifest.xml 这一切都很好……但我发现了一个奇怪的行为。 每次从IE打开文件时,我都会得到两份文件。 当我在被覆盖的MapUri中放置一个断点时,每次应用程序从IE自动启动时它会被击中两次。 当我开始进一步调查时,我注意到只要我调用NavigateService.Navigate()就会发生这种情况。 但是当我调用NavigateService.GoBack时 。 有谁知道为什么会这样? 为什么在调用Navigate()时MapUri()调用了两次? 是否在创建页面的新实例时发生了什么? […]