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?