winforms 如何在WebView2中隐藏下载对话框,同时下载页面内容或使用“保存为PDF”选项打印?

ibps3vxo  于 2022-11-17  发布在  其他
关注(0)|答案(1)|浏览(504)

我知道如何订阅CoreWebview2.DownloadStarting事件并使用handled = true在下载时停止显示“下载”对话框(即图像),但问题是DownloadStarting事件 * 永远不会触发 * 如果您右键单击网页并选择“保存为”或“打印〉另存为PDF”,即使下载对话框 * 将 * 显示为正在进行常规下载。有人知道解决此问题的方法吗?
我的代码:

public Form1()
{
    InitializeComponent();
}

private async void button1_Click(object sender, EventArgs e)
{
    if (webView != null)
        webView.Dispose();

    webView = new WebView2();
    await webView.EnsureCoreWebView2Async();
    webView.CoreWebView2.DownloadStarting += CoreWebView2_DownloadStarting;
    panel1.Controls.Add(webView);
    webView.Dock = DockStyle.Fill;

    webView.Source = new Uri("https://www.microsoft.com");
}

private void CoreWebView2_DownloadStarting(object sender, CoreWebView2DownloadStartingEventArgs e)
{
      e.Handled = true;
}
rvpgvaaj

rvpgvaaj1#

我刚刚找到了一个解决办法:
1.订阅CoreWebView2.IsDefaultDownloadDialogOpenChanged事件:

webView.CoreWebView2.IsDefaultDownloadDialogOpenChanged += webView_CoreWebView2_IsDefaultDownloadDialogOpenChanged;

1.关闭“下载”对话框(如果它已打开):

private void webView_CoreWebView2_IsDefaultDownloadDialogOpenChanged(object sender, object e)
{
   if (webView.CoreWebView2.IsDefaultDownloadDialogOpen) webView.CoreWebView2.CloseDefaultDownloadDialog();
}

相关问题