当前位置:  开发笔记 > 编程语言 > 正文

托管WPF应用程序内的网页并与之交互

如何解决《托管WPF应用程序内的网页并与之交互》经验,为你挑选了2个好方法。

我需要为LOB应用程序创建一个基于Web的仪表板工具.基本上,用户需要能够登录到一个网站,这将允许他们查看各种数据位的统计数据,以及查看与他们相关的任何通知.我们的主要应用程序是使用WPF为桌面构建的.我们还需要提供一个相同的仪表板,该仪表板将托管在我们的WPF应用程序中.主要区别在于,在WPF版本中,它们将具有按钮,这些按钮将打开应用程序的其他部分以对数据进行更改,或执行必要的任何操作.

主要问题是管理层只想编写可在Web和WPF shell中使用的1个版本.他们不想写入不同版本的UI.因此,解决方案是为Web编写仪表板,但将其托管在本地用户的桌面应用程序内,以及远程用户的浏览器中.

所以这是我的问题:

    如何在我的WPF应用程序中托管网页

    如何根据我是否在我的WPF应用程序内部而不是像IE浏览器这样的内容隐藏/删除按钮?

    如果在浏览器中单击链接或按钮,WPF应用程序如何对这些点击做出反应并打开应用程序内的相关屏幕?

    什么是更好的方法?

我意识到这个想法可能很糟糕,所以不要因为它而激怒我.我只是想用正确的方法为管理层提供支持.欢迎所有建议.

谢谢!



1> Yordan Pavlo..:

您可以使用.NET 3.5 SP1中添加的WebBrowser控件在WPF应用程序中托管网页:


    

在代码隐藏中,您必须将Uri设置为您的页面,并将一个对象(应该是com-visible)从java脚本中调用:

public partial class Window1 : Window
{
    public Window1()
    {
        InitializeComponent();

        string uri = AppDomain.CurrentDomain.BaseDirectory + "TestPage.html";
        this.browser.Navigate(new Uri(uri, UriKind.Absolute));
        this.browser.ObjectForScripting = new ScriptingHelper();
    }

    [ComVisible(true)]
    public class ScriptingHelper
    {
        public void ShowMessage(string message)
        {
            MessageBox.Show(message);
        }
    }
}

最后在您的页面中,您必须使用window.external调用代码,如下所示:


    

    


    Click me



2> Yordan Pavlo..:

o,你应该添加 从url =(0014)保存的关于: 头标记上方的互联网评论,以使IE不阻止javascript

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有