You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何限制WinForms C#应用中WebView2的内容下载功能?

阻止WebView2中的下载操作(WinForms C#)

你当前使用的CloseDefaultDownloadDialog方法仅能关闭默认的下载对话框,无法终止下载请求本身,所以图片依然会在后台完成下载。要彻底阻止下载,需要在下载请求发起前就进行拦截,正确的方式是使用CoreWebView2.DownloadStarting事件。

实现步骤

  1. 确保WebView2初始化完成后,订阅DownloadStarting事件
  2. 在事件处理方法中设置e.Cancel = true来取消下载请求

代码示例

首先,在WebView2的初始化完成事件中订阅下载拦截事件:

private void WebView2_CoreWebView2InitializationCompleted(object sender, CoreWebView2InitializationCompletedEventArgs e)
{
    if (e.IsSuccess)
    {
        // 订阅下载开始事件
        webView.CoreWebView2.DownloadStarting += CoreWebView2_DownloadStarting;
    }
}

然后实现下载拦截的处理逻辑:

private void CoreWebView2_DownloadStarting(object sender, CoreWebView2DownloadStartingEventArgs e)
{
    // 取消所有下载请求
    e.Cancel = true;
    
    // 可选:针对特定类型资源拦截(比如仅阻止图片)
    // string ext = Path.GetExtension(e.Uri).ToLower();
    // if (new[] { ".jpg", ".png", ".gif", ".jpeg" }.Contains(ext))
    // {
    //     e.Cancel = true;
    //     MessageBox.Show("图片下载已被禁止", "提示");
    // }
}

关键说明

DownloadStarting事件会在下载请求被创建但尚未开始下载时触发,通过设置e.Cancel = true可以直接终止整个下载流程,从根源上阻止内容下载,这比关闭对话框的方式更彻底。

内容的提问来源于stack exchange,提问作者Alpha Reuel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 23:21:00