CefSharp OnBeforeDownload 处理程序打开 打开文件 window 而不是保存 window

CefSharp OnBeforeDownload handler opening Open file window instead of save window

我在我的 windows 项目中使用 CefSharp[49] 下载处理程序用于根据特定条件取消下载。

下面是我的处理程序,我面临的问题是 window 开口是 'Open File' window 而不是 'Save as' window。

public void OnBeforeDownload(IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback)
        {
            if (!callback.IsDisposed)
            {
                using (callback)
                {
                    if (_allowDownload)
                        callback.Continue(downloadItem.SuggestedFileName, showDialog: true);
                    else
                        downloadItem.IsCancelled = !_allowDownload;
                }
            }
        }

我使用下面的代码作为解决方法

  public void OnBeforeDownload(IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback)
    {
        if (!callback.IsDisposed)
        {
            using (callback)
            {
                if (_allowDownload)
                {
                    SaveFileDialog saveFileDialog = new SaveFileDialog();
                    saveFileDialog.FileName = downloadItem.SuggestedFileName;
                    saveFileDialog.Filter ="|*"+ System.IO.Path.GetExtension(saveFileDialog.FileName);

                    if (saveFileDialog.ShowDialog() == DialogResult.OK && saveFileDialog.FileName != "")
                    {
                        downloadItem.SuggestedFileName = saveFileDialog.FileName;                            
                    }
                    else
                        **downloadItem.IsCancelled = _allowDownload;**
                }
                else
                    **downloadItem.IsCancelled = !_allowDownload;**

                callback.Continue(downloadItem.SuggestedFileName, showDialog: false);
            }

        }
    }

    public void OnDownloadUpdated(IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
    {

        if (downloadItem.IsComplete || downloadItem.IsCancelled)
            browser.CloseBrowser(true);
    }