Как создать обработчик NewWindowRequested и использовать его с webView2 в c # WinForms

Итак, я разрабатываю веб-браузер, основанный на webView2, и моя проблема в том, что все появляется в определенном окне при нажатии кнопки установки. Он переходит во встроенное маленькое окно, в котором есть окно управления окнами по умолчанию и т.д. Как я могу отключить всплывающие окна и просто все в одном окне?

Редактировать:

Именно это я и хочу сделать:

Поэтому я хочу перейти по URL-адресу при вызове window.open() вместо открытия нового окна edge / webView2. У меня есть этот код из документации Microsoft, но как мне сделать сам обработчик и заставить его работать?

public event EventHandler<Microsoft.Web.WebView2.Core.CoreWebView2NewWindowRequestedEventArgs> NewWindowRequested;

Это то, что я использую в своем код, однако он все еще выскакивает окно, я могу полностью отключить только всплывающие окна, есть ли способ исправить это?

e.NewWindow = (CoreWebView2)sender;

это код, который должен направить мой веб-просмотр на всплывающий URL.


person alSW2    schedule 23.06.2021    source источник
comment
Это то, что вам нужно. Вам нужно создать обработчик события, а затем обработать событие.   -  person SimpleCoder    schedule 23.06.2021
comment
@SimpleCoder, как мне создать такой обработчик? Там только сам код обработчика?   -  person alSW2    schedule 23.06.2021
comment
Подпишитесь на CoreWebView2InitializationCompleted. Там добавьте [Your WebView2 instance].CoreWebView2.NewWindowRequested += OnNewWindowRequested;. Конечно, создайте обработчик событий: private void OnNewWindowRequested(object sender, CoreWebView2NewWindowRequestedEventArgs e) { // Whatever } - Код от Microsoft - это просто обычное определение события, поэтому вы можете видеть, что он использует стандартный EventHander и настраиваемые EventArgs. Вам не нужно объявлять Событие, если речь идет о нем.   -  person Jimi    schedule 23.06.2021
comment
Отвечает ли это на ваш вопрос? Как запретить WebView2 (на основе Edge) открывать новый окно   -  person Poul Bak    schedule 23.06.2021
comment
@PoulBak он по-прежнему открывает окно вместо навигации   -  person alSW2    schedule 23.06.2021
comment
Вы действительно должны показать свой код, мы не можем догадаться, как ваш код работает. Отредактируйте свой вопрос и добавьте соответствующий код.   -  person Poul Bak    schedule 23.06.2021
comment
Попробуйте это: e.NewWindow = webView21. (замените webView21 именем вашего WebView2).   -  person Poul Bak    schedule 24.06.2021
comment
@PoulBak выдает мне ошибку о невозможности конвертировать [...]. Winforms.webView2 в [...]. CoreWebView2.CoreWebView или что-то в этом роде.   -  person alSW2    schedule 24.06.2021
comment
Ой, опечатка: e.NewWindow = webView21.CoreWebView2.   -  person Poul Bak    schedule 25.06.2021
comment
@PoulBak забыл написать здесь, у меня возникли проблемы с моим дизайнером, но он не работает, я попробовал, но все равно открывает окно ... smh   -  person alSW2    schedule 29.06.2021