WebBrowser 的 ShowPrintPreviewDialog() 不显示

WebBrowser's ShowPrintPreviewDialog() does not show up

我有一个 winforms 应用程序,我想通过 System.Windows.Forms.WebBrowser 控件显示打印预览。

这是我的帮手class:

using System;
using System.Windows.Forms;

namespace Hobbysta.App.Controls.Print
{
    public class PrintingContent
    {
        private readonly string htmlContent;

        public PrintingContent(string htmlContent)
        {
            this.htmlContent = htmlContent;
        }

        public void ShowPreview()
        {
            ExecuteBrowserAction(b => b.ShowPrintPreviewDialog());
        }

        private void ExecuteBrowserAction(Action<WebBrowser> action)
        {
            var browser = new WebBrowser();
            browser.DocumentCompleted += (_, __) =>
            {
                action(browser);
                browser.Dispose();
            };
            browser.DocumentText = htmlContent;
        }
    }
}

我从带有按钮的表单中调用它:

        private void button1_Click(object sender, EventArgs e)
        {
            var result = new PrintingContent("TEST PRINT");
            result.ShowPreview();
        }

因此,创建了新的 window,我可以在选项卡上看到它,但无论如何都无法显示。点击缩图没有任何反应。

我在这里错过了什么?

它不起作用,因为你已经处理掉了它。注释掉(删除):

browser.Dispose();

private void ExecuteBrowserAction(Action<WebBrowser> action)
{
        var browser = new WebBrowser();
        browser.DocumentCompleted += (_, __) =>
        {
            action(browser);
            //browser.Dispose();
        };

        browser.DocumentText = htmlContent;
}