private Driver(DisplayMode displayMode = DisplayMode.Hidden) { var windowTask = new TaskCompletionSource <WebAutomationWindow>(); var t = new Thread(() => { _window = new WebAutomationWindow(); _ctx = (WebAutomationWindowViewModel)_window.DataContext; // Initiates the dispatcher thread shutdown when the window closes _window.Closed += (s, e) => _window.Dispatcher.InvokeShutdown(); if (displayMode == DisplayMode.Hidden) { _window.WindowState = WindowState.Minimized; _window.ShowInTaskbar = false; } _window.Show(); windowTask.SetResult(_window); // Makes the thread support message pumping System.Windows.Threading.Dispatcher.Run(); }); _windowTask = windowTask.Task; t.SetApartmentState(ApartmentState.STA); t.Start(); }
public WebAutomationWindowViewModel(WebAutomationWindow window) { _window = window; }