对于一个相当大的项目,我必须弄清楚如何(如果可能的话)来解决这个问题。我有一个全屏WPF应用程序进行幻灯片放映 - 按照例如每张幻灯片20秒。现在,我必须研究用URL替换幻灯片的可能性,并让用户导航幻灯片而不是每10秒更换一次幻灯片。设置如下:
显示的容器是一个WPF UserControl,其中包含一个事件,允许它更改为下一张幻灯片(调用Next()方法)。 IExporer托管在此控件中。
我面临的问题是:我如何从我的托管应用程序必须调用NExt()方法的网站进行通信?
显示该网站的IExplorer托管在我的WPF UserControl中。有什么方法可以访问某种事件或其他任何东西,以帮助我确定是否已按下特定页面或特定链接??
Web服务,光盘上的文件,您的名字,我准备尝试任何事情: - )
任何建议或可能的解决方案表示赞赏。
答案 0 :(得分:1)
如果在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');
}