如何打印TextBox的内容

jay*_*t55 13 .net c# microsoft-metro windows-8 windows-store-apps

如何在metro应用程序中打印TextBox的内容?我已经阅读了关于MSDN和许多在线教程的快速入门指南,但它们非常复杂,不能与TextBox控件一起使用,只能使用RichTextBox控件.

我们如何从Metro应用程序中的TextBox控件打印?它甚至可能吗?怎么样?

Xyr*_*oid 7

更新1

我创建了一个帮助类,简化了打印文本框内容.您可以通过NuGet添加帮助程序类.如果你想增强我现有的助手类,请在GitHub上进行分叉


在这里,我将从MSDN中为您提供修改后的打印样本.我已经把文本框你可以写任何东西,并将打印.请注意我没有完成打印文本框文本的样本,即格式化(粗体,斜体,下划线,颜色).我已经设置了硬编码的打印格式.您可以制作自己的格式.

Stack Overflow在回答中有字符限制,我的代码太长,所以发布CodePaste.net链接.

XAML:http://codepaste.net/9nf261

CS:http://codepaste.net/q3hsm3

请注意我使用了一些图像,因此将图像放在"图像"文件夹中

  • 添加代码下载链接并不是一个好的答案.如果你把这个文件从skydrive中删除,那么这个答案就变得毫无用处.将代码作为答案的一部分包括在内. (4认同)
  • 我从不删除我的公开样本.然后我也在这里发布代码 (2认同)
  • 我认为代码太长而不适合 SO 这一事实很好地表明,从 Metro 应用程序中的 TextBox 打印纯文本过于复杂且不必要。 (2认同)

Tom*_*tom 6

我刚刚用文本框(textBox1)和一个按钮(button1)创建了一个小的winforms-application.代码隐藏看起来像:

public partial class Form1 : Form
{
    public Form1()
    {
           InitializeComponent();
    }

    private void PrintDocumentOnPrintPage(object sender, PrintPageEventArgs e)
    {
        e.Graphics.DrawString(this.textBox1.Text, this.textBox1.Font, Brushes.Black, 10, 25);
    }

    private void button1_Click(object sender, EventArgs e)
    {
        PrintDocument printDocument = new PrintDocument();
        printDocument.PrintPage += PrintDocumentOnPrintPage;
        printDocument.Print();
    }
}
Run Code Online (Sandbox Code Playgroud)

点击按钮即可完成打印.

  • 问题是关于 Windows 商店应用程序,这是一个完全不同的野兽。 (2认同)
  • 问题是关于 Windows Store 应用程序,它与 Windows Forms 应用程序完全不同。 (2认同)
  • WinForms 中的 4 行代码,而 Metro 应用程序中可能有数百行代码——还有什么用???只是为了打印其中可能只有一个字符的 TextBox 的内容?微软真的把这个塞满了。 (2认同)