C# 使用DrawingContext创建不同大小的XPS文档

C# 使用DrawingContext创建不同大小的XPS文档,c#,.net,wpf,C#,.net,Wpf,我需要创建不同的报告,将打印在不同的页面大小A4,A5等 在过去,我们使用Winforms e.graphics.DrawString等来构建页面。 我们现在迁移到WPF并使用XpsDocument。我是WPF的新手,我对不同的印刷和绘图课程有点迷茫 例如,我如何创建一个A4页面,并在x=100mm,y=150mm处绘制一个字符串? 如果可能的话,我想使用DrawingContext类,因为它似乎类似于winforms GDI+绘制页面内容的样式 DrawingVisual visual = n

我需要创建不同的报告,将打印在不同的页面大小A4,A5等

在过去,我们使用Winforms e.graphics.DrawString等来构建页面。 我们现在迁移到WPF并使用XpsDocument。我是WPF的新手,我对不同的印刷和绘图课程有点迷茫

例如,我如何创建一个A4页面,并在x=100mm,y=150mm处绘制一个字符串? 如果可能的话,我想使用DrawingContext类,因为它似乎类似于winforms GDI+绘制页面内容的样式

DrawingVisual visual = new DrawingVisual();
using (DrawingContext dc = visual.RenderOpen())
{
      dc.DrawText(new FormattedText("TestString 01", CultureInfo.CurrentCulture
            , FlowDirection.LeftToRight, new Typeface("Arial"), 10, Brushes.Black)
            , new Point(100, 150));
}
我正在使用以下代码创建XPS文档,但我不知道如何设置页面大小,以及如何在XPS文档上使用DrawingContext

using (var doc = new XpsDocument(fileName, FileAccess.Write))
{
    var writer = XpsDocument.CreateXpsDocumentWriter(doc);
    writer.Write(GetRandomA4Page());
}

您通常不会使用DrawingVisual来打印文档。开始阅读MSDN上的文章。谢谢你的链接。我现在正在使用一个带有TextBlock实例的FixedDocument,这似乎就是我所需要的。再次感谢。