【发布时间】:2013-09-13 21:30:35
【问题描述】:
我有一个 WPF 窗口,我想将它保存到 XPS 文件(或者实际上是任何类型的可以存储窗口图像的文件)。此窗口包含一个冗长的DataGrid。到目前为止,我能够写入 XPS 文件,但生成的文档仅包含一页,因此大部分 DataGrid 行都丢失了。如何让XPSDocumentWriter 使用尽可能多的页面?
这是我目前所得到的(我已关闭网格滚动条并自动调整窗口大小以确保在写入 XPS 文件之前它是全尺寸的):
Dim visual = CType(Me.Content, Media.Visual)
Me.LogGrid.VerticalScrollBarVisibility = ScrollBarVisibility.Hidden
Me.SizeToContent = Windows.SizeToContent.WidthAndHeight
Dim xd As New System.Windows.Xps.Packaging.XpsDocument(file, IO.FileAccess.ReadWrite)
Dim xw = System.Windows.Xps.Packaging.XpsDocument.CreateXpsDocumentWriter(xd)
xw.Write(visual)
xd.Close()
【问题讨论】:
-
您必须自己处理所有自定义分页代码。这绝非简单。如果我要这样做,我会想出一个或多个处理分页数据的用户控件,然后按照已知的行数拆分行(例如,第一页句柄 10 行,溢出页句柄 80 行),填充 '将它们写到文档中。或者尝试创建一个自定义的document paginator like in this CodeProject article。
标签: wpf visual-studio-2010 xpsdocument