如何解决WPF应用程序与托管IExplorer之间的通信?
对于一个相当大的项目,我必须弄清楚如何(如果可能的话)解决这个问题。我有一个全屏WPF应用程序在做幻灯片放映,每张幻灯片的间隔为20秒。现在,我必须研究用URL代替幻灯片放映的可能性,让用户浏览幻灯片,而不是每10秒更换一次幻灯片。设置如下所示:如何解决WPF应用程序与托管IExplorer之间的通信?,wpf,architecture,Wpf,Architecture,对于一个相当大的项目,我必须弄清楚如何(如果可能的话)解决这个问题。我有一个全屏WPF应用程序在做幻灯片放映,每张幻灯片的间隔为20秒。现在,我必须研究用URL代替幻灯片放映的可能性,让用户浏览幻灯片,而不是每10秒更换一次幻灯片。设置如下所示: 首先,将运行定时幻灯片放映,例如5张幻灯片 我显示我的网页并允许用户与网站交互(导航) 当用户做了某件事(这就是问题所在)网站将从“幻灯片”中删除,并恢复原来的幻灯片放映 显示的容器是一个WPF UserControl,其中包含一个事件,允许它更改到下
任何建议或可能的解决方案都将不胜感激 如果在WPF应用程序中使用WebBrowser控件,则可以使用html中的javascript调用C类。例如,假设您有一个类似于以下内容的类:
[ComVisible(true)]
public class JavaScriptBackEnd
{
public void onclick(string s)
{
MessageBox.Show(s);
}
}
然后使用以下代码初始化WebBrowser控件:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
webBrowser1.ObjectForScripting = new JavaScriptBackEnd();
webBrowser1.Navigate(new Uri(@"HTMLPage1.htm"));
}
从HTMLPage1.htm,现在可以使用以下javascript调用JavaScriptBackEnd.onclick方法:
function testclick() {
window.external.onclick('blabla');
}
如果在WPF应用程序中使用WebBrowser控件,则可以使用html中的javascript调用C类。例如,假设您有一个类似于以下内容的类:
[ComVisible(true)]
public class JavaScriptBackEnd
{
public void onclick(string s)
{
MessageBox.Show(s);
}
}
然后使用以下代码初始化WebBrowser控件:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
webBrowser1.ObjectForScripting = new JavaScriptBackEnd();
webBrowser1.Navigate(new Uri(@"HTMLPage1.htm"));
}
从HTMLPage1.htm,现在可以使用以下javascript调用JavaScriptBackEnd.onclick方法:
function testclick() {
window.external.onclick('blabla');
}