【发布时间】:2013-03-06 23:03:11
【问题描述】:
我有一个场景,我从我公司的一个内部网页面中抓取一些值。我不打算在我的应用程序中显示该页面。我只需要网页中的一些数据。
但我注意到必须在 Xaml 中创建 WebBrowser 才能触发 LoadComplete 事件。由于我不打算显示网页,因此我宁愿不在 Xaml 中创建它。
这里有一个例子来说明我在说什么。
Xaml 版本(事件触发良好):
Xaml:
<WebBrowser x:Name="webBrowser" Visibility="Collapsed"/>
代码:
public MainWindow()
{
InitializeComponent();
webBrowser.LoadCompleted += WebBrowserOnLoadCompleted;
webBrowser.Navigate("http://stackoverflow.com/");
}
private void WebBrowserOnLoadCompleted(object sender, NavigationEventArgs navArgs)
{
MessageBox.Show("PageLoaded");
}
结果:然后 MessageBox 显示。 (事件触发)
仅代码版本(事件不会触发):
代码:
public MainWindow()
{
InitializeComponent();
WebBrowser codeBehindBrowser = new WebBrowser();
codeBehindBrowser.LoadCompleted += WebBrowserOnLoadCompleted;
codeBehindBrowser.Navigate("http://stackoverflow.com/");
}
private void WebBrowserOnLoadCompleted(object sender, NavigationEventArgs navArgs)
{
MessageBox.Show("PageLoaded");
}
结果:事件没有触发。
如果我在后面的代码中设置WebBrowser,有没有办法触发事件?
【问题讨论】:
标签: c# .net wpf xaml webbrowser-control