我需要为LOB应用程序创建一个基于Web的仪表板工具.基本上,用户需要能够登录到一个网站,这将允许他们查看各种数据位的统计数据,以及查看与他们相关的任何通知.我们的主要应用程序是使用WPF为桌面构建的.我们还需要提供一个相同的仪表板,该仪表板将托管在我们的WPF应用程序中.主要区别在于,在WPF版本中,它们将具有按钮,这些按钮将打开应用程序的其他部分以对数据进行更改,或执行必要的任何操作.
主要问题是管理层只想编写可在Web和WPF shell中使用的1个版本.他们不想写入不同版本的UI.因此,解决方案是为Web编写仪表板,但将其托管在本地用户的桌面应用程序内,以及远程用户的浏览器中.
所以这是我的问题:
如何在我的WPF应用程序中托管网页
如何根据我是否在我的WPF应用程序内部而不是像IE浏览器这样的内容隐藏/删除按钮?
如果在浏览器中单击链接或按钮,WPF应用程序如何对这些点击做出反应并打开应用程序内的相关屏幕?
什么是更好的方法?
我意识到这个想法可能很糟糕,所以不要因为它而激怒我.我只是想用正确的方法为管理层提供支持.欢迎所有建议.
谢谢!
您可以使用.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
o,你应该添加 从url =(0014)保存的关于: 头标记上方的互联网评论,以使IE不阻止javascript