Mic*_*cah 20 wpf web-applications
我需要为LOB应用程序创建一个基于Web的仪表板工具.基本上,用户需要能够登录到一个网站,这将允许他们查看各种数据位的统计数据,以及查看与他们相关的任何通知.我们的主要应用程序是使用WPF为桌面构建的.我们还需要提供一个相同的仪表板,该仪表板将托管在我们的WPF应用程序中.主要区别在于,在WPF版本中,它们将具有按钮,这些按钮将打开应用程序的其他部分以对数据进行更改,或执行必要的任何操作.
主要问题是管理层只想编写可在Web和WPF shell中使用的1个版本.他们不想写入不同版本的UI.因此,解决方案是为Web编写仪表板,但将其托管在本地用户的桌面应用程序内,以及远程用户的浏览器中.
所以这是我的问题:
我意识到这个想法可能很糟糕,所以不要因为它而激怒我.我只是想用正确的方法为管理层提供支持.欢迎所有建议.
谢谢!
Yor*_*lov 38
您可以使用.NET 3.5 SP1中添加的WebBrowser控件在WPF应用程序中托管网页:
<Grid>
<WebBrowser Name="browser" />
</Grid>
Run Code Online (Sandbox Code Playgroud)
在代码隐藏中,您必须将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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
最后在您的页面中,您必须使用window.external调用代码,如下所示:
<head>
<title></title>
<script type="text/javascript">
function OnClick()
{
var message = "Hello!";
window.external.ShowMessage(message);
}
</script>
</head>
<body>
<a href="#" onclick="OnClick()">Click me</a>
</body>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16519 次 |
| 最近记录: |