Как получить событие LoadCompleted контрола WebBrowser не вставляя даный контрол в XAML?

272
21 января 2018, 01:20

У меня нет потребности использовать WebBrowser в XAML, мне он нужен всего лишь для того что бы иметь возможность вызвать событие Click на одном из тегов загруженной HTML страницы.

Я не могу вызывать событие Click на нужном мне теге, до того как загрузиться страница. Для того что бы получить уведомление о загрузке страницы мне нужно подписаться на событие LoadCompleted. Но, судя из того что я вижу событие LoadCompleted не генерируется пока WebBrowser не будет добавлен в XAML.

По причине того я хочу осуществлять загрузку множества HTML страниц параллельно, перспектива постоянно добавлять WebBrowser контрол в разметку XAML до загрузки одной из множества страниц и удаление его из этой разметки после загрузки нужной страницы выглядит не очень удобно.

Моя цель получить доступ к вызову события Click на загруженной HTML странице без возни с ХАМL.

Можно ли получить доступ к событию LoadCompleted контрола WebBrowser без его привязки к XAML. Возможно ли это? Может быть есть какой то другой путь?

Код отражающий суть проблемы (WebBrowser в XAML не добавлялся)

public partial class SettingsWindow : Window
{
    private WebBrowser browser = new WebBrowser();
    public SettingsWindow()
    {
        InitializeComponent();
        this.browser.LoadCompleted += Browser_LoadCompleted;
        this.browser.Source         = new Uri(@"https://www.google.com.ua/");
        //this.browser.Navigate(path); <-- пробовал загружать страницу и этим способом.
    }
    private void Browser_LoadCompleted(object sender, NavigationEventArgs e)
    {
        // Этот обработчик никогда не вызывается если объект WebBrowser не 
        // добавлен в XAML или не добавлен программным путем в качестве 
        // дочернего компонента к одному из существующих контролов окна.
    }        
}
READ ALSO
String Format for DateTime

String Format for DateTime

объясните пожалуйста почему String Format for DateTime c заданой локал-й en-US на моей машине конвертит в "Monday, January 1, 0001" на на другой "Monday, January 01, 0001" при...

282
Переопределение GetHashCode(): создание хэш по User.Surname и User.Name

Переопределение GetHashCode(): создание хэш по User.Surname и User.Name

Есть класс c переопределенным методом Equals()

192
Отследить KeyPress из класса наследника TabPage

Отследить KeyPress из класса наследника TabPage

Создал класс у которого родитель TabPage (проект winforms), как мне отслеживать нажатие клавиш из класса?

212