如何限制WinForms C#应用中WebView2的内容下载功能?
阻止WebView2中的下载操作(WinForms C#)
你当前使用的CloseDefaultDownloadDialog方法仅能关闭默认的下载对话框,无法终止下载请求本身,所以图片依然会在后台完成下载。要彻底阻止下载,需要在下载请求发起前就进行拦截,正确的方式是使用CoreWebView2.DownloadStarting事件。
实现步骤
- 确保WebView2初始化完成后,订阅
DownloadStarting事件 - 在事件处理方法中设置
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
相关产品推荐
相关产品推荐

