C# 如何在打印输出中获得此UI输出?
我正在处理WPF应用程序。这里我必须处理一些打印格式。要解决打印的分页问题,我使用以下代码:C# 如何在打印输出中获得此UI输出?,c#,wpf,user-controls,C#,Wpf,User Controls,我正在处理WPF应用程序。这里我必须处理一些打印格式。要解决打印的分页问题,我使用以下代码: private void Button_Click(object sender, RoutedEventArgs e) { // Create a PrintDialog PrintDialog printDlg = new PrintDialog(); // Create a FlowDocument dynamica
private void Button_Click(object sender, RoutedEventArgs e)
{
// Create a PrintDialog
PrintDialog printDlg = new PrintDialog();
// Create a FlowDocument dynamically.
FlowDocument doc = CreateFlowDocument();
doc.Name = "FlowDoc";
doc.PageHeight = printDlg.PrintableAreaHeight;
doc.PageWidth = printDlg.PrintableAreaWidth;
// Create IDocumentPaginatorSource from FlowDocument
IDocumentPaginatorSource idpSource = doc;
// Call PrintDocument method to send document to printer
printDlg.PrintDocument(idpSource.DocumentPaginator, "Hello WPF Printing.");
}
及
private FlowDocument CreateFlowDocument()
{
//创建流程文档
FlowDocument文档=新的FlowDocument();
int i=0;
虽然(我很好的逻辑说,你应该在运行循环之前添加全宽度的静态部分,然后在循环中一个接一个地添加动态部分,但我没有看到你的静态部分,你有没有遗漏发布内容?哦..是的,静态部分遗漏了。这是一个简单的带列的表。
private FlowDocument CreateFlowDocument()
{
// Create a FlowDocument
FlowDocument doc = new FlowDocument();
int i = 0;
while (i <2)
{
// Create first Paragraph
Paragraph p1 = new Paragraph();
MyUserControl comp = new MyUserControl ();
p1.BorderBrush = new SolidColorBrush(Color.FromRgb(79, 129, 189));
p1.BorderThickness = new Thickness(3);
p1.Inlines.Add(comp);
// Add Paragraph to Section
doc.Blocks.Add(p1);
// Add Section to FlowDocument
//doc.Blocks.Add(sec);
i++;
}
return doc;
}