C# 如何阻止webview2打开新的浏览器窗口而不是在浏览器内部

C# 如何阻止webview2打开新的浏览器窗口而不是在浏览器内部,c#,winforms,webview2,C#,Winforms,Webview2,我想知道是否存在阻止webview2组件打开浏览器窗口的方法 以双赢的形式 发生了什么事 我到处找,但找不到一个,虽然我找到了一个,但它使用了XAML/UWP 一个页面使用了xaml,但代码无法工作,因为它的xaml和im使用c#来阻止链接在新窗口中打开,您可以订阅CoreWebView2\u NewWindowRequested 为此,最简单的方法是先订阅CoreWebView2InitializationCompleted 在WebView2控件的属性窗口中,双击CoreWebView2I

我想知道是否存在阻止webview2组件打开浏览器窗口的方法 以双赢的形式

发生了什么事

我到处找,但找不到一个,虽然我找到了一个,但它使用了XAML/UWP


一个页面使用了xaml,但代码无法工作,因为它的xaml和im使用c#

来阻止链接在新窗口中打开,您可以订阅
CoreWebView2\u NewWindowRequested

为此,最简单的方法是先订阅
CoreWebView2InitializationCompleted

WebView2
控件的属性窗口中,双击
CoreWebView2InitializationCompleted
-将自动生成事件处理程序:

现在,添加请求的
CoreWebView2\u NewWindow
eventhandler,并将
e.NewWindow
设置到当前的
CoreWebView2

下面是代码(假设您的
WebView2
控件名为
webView21
):


现在链接在同一窗口(您的
WebView2
控件)中打开。

嗨,不确定,有没有办法捕获新窗口事件是的,我找到了,但我不知道用
public Microsoft.Web.WebView2.Core.corewwebview2newindowrequestedeventargs参数添加它的代码这是我找到的代码,然后是另一个。嗨,尝试了这个,但它不起作用。我认为在使用或类似于公共区域中必须包含一些内容,但总的来说,这是一个很好的尝试。会发生什么?你能编译吗?您安装了哪个版本的
WebView2
?转到“Project”、“Nuget packages”并更新到最新版本,仅包含
CoreWebView2InitializationCompleted
事件。当我单击浏览器中的按钮时,它会打开一个新窗口。我还有一个最新的更新版本edge是90.0.782.0(正式构建)dev(64位)是否如图所示添加了
NewWindowRequested
事件处理程序?请尝试在
CoreWebView2\u NewWindowRequested
中设置断点以查看是否调用了它。我实际测试了代码,它应该可以工作。
private void WebView21_CoreWebView2InitializationCompleted(object sender, Microsoft.Web.WebView2.Core.CoreWebView2InitializationCompletedEventArgs e)
{
    webView21.CoreWebView2.NewWindowRequested += CoreWebView2_NewWindowRequested;
}

private void CoreWebView2_NewWindowRequested(object sender, Microsoft.Web.WebView2.Core.CoreWebView2NewWindowRequestedEventArgs e)
{
    e.NewWindow = webView21.CoreWebView2;
}