.net core 未显示Windows 10打印到PDF窗口。Avlonia窗口变得无响应

.net core 未显示Windows 10打印到PDF窗口。Avlonia窗口变得无响应,.net-core,avaloniaui,.net Core,Avaloniaui,我正在从avalonia应用程序打印基本测试文档。问题是,当我从Windows 10选择“Microsoft Print to PDF”作为目标打印机时,应用程序挂起,什么也没有发生 我认为问题在于,Avalonia窗口以某种方式阻止了与print to pdf服务相关联的Save file对话框的显示 因此,一种(几乎)解决方法是隐藏窗口,然后再次显示,如下所示: private void PrintTestPage() { window.Hide(); PrintDocum

我正在从avalonia应用程序打印基本测试文档。问题是,当我从Windows 10选择“Microsoft Print to PDF”作为目标打印机时,应用程序挂起,什么也没有发生

我认为问题在于,Avalonia窗口以某种方式阻止了与print to pdf服务相关联的Save file对话框的显示

因此,一种(几乎)解决方法是隐藏窗口,然后再次显示,如下所示:

private void PrintTestPage()
{
    window.Hide();

    PrintDocument pd = new PrintDocument();
    pd.PrinterSettings.PrinterName = SelectedPrinter;
    pd.PrintPage += delegate (object sender1, PrintPageEventArgs e1)
    {
        e1.Graphics.DrawString("This is a test page.", new Font("Times New Roman", 12), new SolidBrush(Color.Black), new RectangleF(0, 0, pd.DefaultPageSettings.PrintableArea.Width, pd.DefaultPageSettings.PrintableArea.Height));

    };
    try
    {
        pd.Print();
    }
    catch (Exception ex)
    {
        throw new Exception("Error while printing: ", ex);
    }

    window.Show();
}
但是,当用户选择任何其他打印机时,该窗口将被隐藏并无故显示。除此之外,我希望保存对话框出现在我的应用程序主窗口的顶部,就像在我测试“Microsoft打印到PDF”打印机的任何其他应用程序中一样


我在上创建了一个复制的最小示例。

尝试从STA线程打印。您可能需要使用感谢您的提示,但不幸的是,我无法真正理解这一点。我需要使用WinForms吗?如果可能的话,我希望我的代码能够跨平台运行。目前,它适用于除microsoft one之外的所有打印机。。。