我正在构建一个小型WPF应用程序,以便在平板电脑上运行,该平板电脑具有带有某种内容的DockPanel和一组按钮,当按下这些按钮时,会加载各种媒体作为要显示的内容,包括图像,视频文件,PDF和网页。默认内容是图像的幻灯片显示,如果在一定时间后未检测到任何输入,则当前内容应恢复为幻灯片显示。
我一直这样做是通过每秒钟点火一次,将计数器增加1并在计数器超过某个值时返回幻灯片,并将PreviewMouseMove事件绑定到我的主窗口,重置计数器这适用于图像和视频文件,但我在WebBrowser控件中显示的PDF和网页会阻止PreviewMouseMove事件以某种方式触发。我认为这应该是不可能的吗?如果没有,是否还有其他方法可以全局检测鼠标移动,或者从WebBrowser获取事件?看起来WebBrowser带有鼠标事件的奇怪行为很常见,并且有很多关于它的问题,但我只能使用浏览器的WinForms实现而不是Windows.Controls.WebBrowser找到示例。 ,它具有不同的Document属性。
答案 0 :(得分:0)
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
//must wait for load completed
webBrowser1.LoadCompleted += new LoadCompletedEventHandler(webBrowser1_LoadCompleted);
}
private void webBrowser1_LoadCompleted(object sender, NavigationEventArgs e)
{
mshtml.HTMLDocument doc;
doc = (mshtml.HTMLDocument)webBrowser1.Document;
//get the IHTMLDocumentEvents2 interface
mshtml.HTMLDocumentEvents2_Event iEvent;
iEvent = (mshtml.HTMLDocumentEvents2_Event)doc;
//Register a handler
iEvent.onclick += new mshtml.HTMLDocumentEvents2_onclickEventHandler(ClickEventHandler);
}
//here's the handler
private bool ClickEventHandler(mshtml.IHTMLEventObj e)
{
textBox1.Text = "Item Clicked";
return true;
}
}