c# - 使用 XBAP 直接导航浏览器

标签 c# .net wpf xbap

我正在开发一个完全信任 WPF 浏览器应用程序 (XBAP),但遇到了一个障碍。客户端上的应用程序被连接以处理具有特定前缀/协议(protocol)的导航请求。 (例如,“foo://...”)此外,应用程序根据创建请求的浏览器以不同方式处理这些问题。我已经尝试过页面的“NavigationService.Navigate()”方法,但由于某些奇怪的原因涉及 WebRequest 对象,它会引发 NotSupportedException 说“无法识别 URI 前缀。”我可以创建一个 WebBrowser 控件并使用此前缀成功导航 IT,但应用程序将其识别为不同的浏览器并做出不同的 react 。如果我使用的是 Silverlight ,我会直接设置浏览器的“window.location”,效果很好。当然,这似乎只在 Silverlight 框架中可用。

总而言之,我需要做的是触发托管 XBAP 的浏览器导航到具有此特殊前缀的 URI。

哇哦。这就是我想的。谢谢。

更新:.Net Framework 4.0 将允许直接访问浏览器的 DOM,这将解决这个问题,但我仍在寻找在 .Net 3.x 中实现此目的的方法。

最佳答案

您可以尝试使用 BrowserInteropHelper.ClientSite 来访问 DOM。查看此帖子以获取示例:

http://blogs.msdn.com/changov/archive/2009/03/01/scripting-out-of-an-xbap.aspx

请注意,这仅适用于 Internet Explorer。

关于c# - 使用 XBAP 直接导航浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/745164/

相关文章:

c# - SqlDataReader 和 SQL Server 2016 FOR JSON 将 json 拆分为 2k 字节的 block

c# - 如何在 LINQ 中将一个对象的所有属性复制到另一个对象

c# - DbDataRecord - entry.CurrentValues 和 entry.originalValues 相同

wpf - 为什么人们在 XAML 样式元素中指定 BasedOn ="{x:Null}"?

c# - 如何通过windows认证

c# - 为什么我不能在构造函数中分配给 lambda 语法只读属性?

c# - C# (Apache.NMS) 中的 ActiveMQ PooledConnectionFactory

c# - 如果 .NET SqlConnection 在 `using` 语句内引发异常,我是否需要手动关闭它?

WPF 字体 : Why are some characters missing?

wpf - WCF:单向回调有问题