I have a scenario where I am scraping some values out of one of my company intranet pages. I don't plan on showing the page in my app. I just need some of the data from the web page.
But I am noticing that a WebBrowser has to be created in Xaml for the LoadComplete event to fire. Since I am not going to show the webpage, I would rather not create it in Xaml.
Here is an Example that illustrates what I am talking about.
Xaml Version (the event fires fine):
Xaml:
<WebBrowser x:Name="webBrowser" Visibility="Collapsed"/>
Code:
public MainWindow()
{
InitializeComponent();
webBrowser.LoadCompleted += WebBrowserOnLoadCompleted;
webBrowser.Navigate("http://stackoverflow.com/");
}
private void WebBrowserOnLoadCompleted(object sender, NavigationEventArgs navArgs)
{
MessageBox.Show("PageLoaded");
}
Result: Then the MessageBox shows. (The event fires)
Code Only Version (The event does not fire):
Code:
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");
}
Result: The event does not fire.
Is there a way to get the event to fire if I make the WebBrowser in code behind?