Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 打印在wpf中不起作用_C#_Wpf_Printing_Printdialog - Fatal编程技术网

C# 打印在wpf中不起作用

C# 打印在wpf中不起作用,c#,wpf,printing,printdialog,C#,Wpf,Printing,Printdialog,我正在开发wpf应用程序。我在xaml页面中只有一个按钮。单击它,我已经编写了以下代码 private void button1_Click(object sender, RoutedEventArgs e) { PrintDialog printDialog = new PrintDialog(); if (printDialog.ShowDialog() == true) {

我正在开发wpf应用程序。我在xaml页面中只有一个按钮。单击它,我已经编写了以下代码

private void button1_Click(object sender, RoutedEventArgs e)
        {

            PrintDialog printDialog = new PrintDialog();
            if (printDialog.ShowDialog() == true)
            {
                //PrintUsingDocumentCondensed("Hi", "Hello");
                printDialog.PrintVisual(button1, "Print123");
                //printDialog.PrintDocument("a",
            }
        }
我已将打印机连接到我的系统。当我在应用程序中单击“打印”按钮时,打印机开始打印。打印机打印一些文本,如
BeginDefaults
EndDefaults
BeginResource
EndResource
。与其他许多文本类似。此外,它还会打印一些文本,如“此作业需要的内存超过此打印机的可用内存”、“对于输出格式,请选择“优化以便于移植”、“减少文档中的字体数”。等
我想我的打印机出毛病了。或者我的代码或应用程序有什么问题吗?。我应该如何用上述代码打印打印页面上的实际按钮?您能为我提供上述链接的任何解决方案吗?

我不确定为什么直接在
PrintVisual
方法中放置对象不起作用,但我感觉这不是您最终执行此操作的方式,因此我建议您选择另一种方式。我将生成一个位图,然后将位图传递到
PrintVisual
方法中,而不是传递控件。此问题涉及如何做到这一点:

然后是一个问题,展示了如何从控件创建位图


我选中在记事本上打印文本。它给出了同样的错误。然后我分析了打印机没有正确添加。这是我的错误。现在正确地添加了打印机。现在一切都正常了

看看这个:因为我们将打印DrawingVisual,所以打印时是否需要任何特定类型的打印机?不,好的。至少你没有什么需要考虑的。我已经使用了你链接中给出的代码。打印页面仍然按照我在问题中描述的方式打印