标签: 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);
Run Code Online (Sandbox Code Playgroud)

链接显示正确.

当我将鼠标移到它上面时,链接变为红色.

问题:当我点击它时,没有任何反应.

我忘记了什么吗?我是否需要实现某种方法才能真正打开链接?

c# wpf textblock hyperlink navigateuri

17
推荐指数
2
解决办法
1万
查看次数

通过其Uri将参数传递给WPF页面

在导航样式的WPF应用程序(NavigationWindow,而不是XBAP)的上下文中:

Hyperlink的NavigateUri是否可以包含额外的参数,例如路径数据或查询字符串?例如,有什么方法可以将我的NavigateUri设置为/Product.xaml/123/Product.xaml?id=123,并让我的Product.xaml页面能够看到它被调用参数123

navigation wpf navigateuri query-string

10
推荐指数
1
解决办法
3万
查看次数

当我调用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;
    }
}
Run Code Online (Sandbox Code Playgroud)

InitializePhoneApplication()中我做了一个

RootFrame.UriMapper = new AssociationUriMapper();
Run Code Online (Sandbox Code Playgroud)

当然,我已经将扩展标记添加到WMAppManifest.xml

这一切都很好......但我发现了一个奇怪的行为.每次从IE打开文件时,我都会得到两份文件.当我在被覆盖的MapUri中放置一个断点时,每次应用程序从IE自动启动时它都会被击中两次.

当我开始进一步调查时,我注意到只要我调用NavigateService.Navigate()就会发生这种情况 .但是当我调用NavigateService.GoBack时却没有.

有谁知道为什么会这样?为什么在调用Navigate()MapUri()调用了两次?是否在创建页面的新实例时发生了什么?(我注意到当我们调用Navigate()时会创建一个新的被调用页面实例,但是当我们调用GoBack()时,我们会检索已创建的页面实例(我们导航过).

编辑:
我现在从头开始做了一个小测试应用程序.结果是一样的.如果我有一个继承自UriMapperBase的类并覆盖MapUri方法,那么只要我导航到应用程序或在应用程序中调用NavigateService.Navigate(),就会调用两次MapUri.

我的问题的明显解决方法当然是有一个单独的页面,应用程序导航到该页面调用SaveFileToIsolatedStorage() …

c# uri map navigateuri windows-phone

5
推荐指数
1
解决办法
792
查看次数