WPF框架 - 在外部浏览器中打开链接

3

我在一个WPF窗口中有一个框架(用于显示本地HTML文件)。 当用户单击链接或类似内容时,我希望在外部浏览器窗口中打开它(用户的默认Web浏览器)。

请问如何实现这一功能?


现在无法测试(离开了 Visual Studio),但通过附加到 YourFrame.NavigationServiceNavigating 事件可能是可能的:http://msdn.microsoft.com/zh-cn/library/system.windows.navigation.navigationservice.navigating.aspx - Heinzi
3个回答

1

只要去做:

private void Frame_Navigating(object sender, NavigatingCancelEventArgs e)
{
    // You should make sure the links are different.
    if (IsExternalLink(e.Uri))
    {
        // open links in extbrowser.
        Process.Start(e.Uri.AbsoluteUri);
        // cancel the event, and Frame cannot perform navigation operation.
        e.Cancel = true;
    }
}

另一种解决方案:ExternalLinks使用“Click”事件而不是“RequestNavigate”事件。

0
<TextBlock>
   <Hyperlink NavigateUri="http://www.google.com" TargetName="_top">
      Go Google!
   </Hyperlink>
</TextBlock>

抱歉,也许我没有表达清楚,我的意思是当用户在Frame中单击链接时,我假设有一些事件处理程序来识别源URL何时更改,但我似乎还没有找到正确的触发器! - Erika

0

这是一篇非常有用的文章从超链接启动浏览器,并且解释了你需要什么,阅读“浏览器(XBAP或Loose XAML)”的要点。

设置TargetName="_self"将在当前框架中打开链接,我想这正是你想要的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接