我有一个场景,我正在从我公司的一个 Intranet 页面中抓取一些值。我不打算在我的应用程序中显示该页面。我只需要网页中的一些数据。
但我注意到WebBrowser
必须在 Xaml 中创建一个才能触发 LoadComplete 事件。由于我不打算显示网页,我宁愿不在 Xaml 中创建它。
这是一个示例,说明了我在说什么。
Xaml 版本(事件触发良好):
xml:
<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
如果我在后面输入代码,有没有办法让事件触发?