Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.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
WPF Visual to XPS文档方法仅创建一个页面_Wpf_Visual Studio 2010_Xpsdocument - Fatal编程技术网

WPF Visual to XPS文档方法仅创建一个页面

WPF Visual to XPS文档方法仅创建一个页面,wpf,visual-studio-2010,xpsdocument,Wpf,Visual Studio 2010,Xpsdocument,我有一个WPF窗口,我想将其保存到XPS文件(或者任何类型的存储窗口图像的文件)中。此窗口包含一个冗长的数据网格。到目前为止,我能够写入XPS文件,但生成的文档只包含一页,因此大部分DataGrid行丢失。如何让XPSDocumentWriter使用尽可能多的页面 以下是我到目前为止得到的结果(在写入XPS文件之前,我已经关闭了网格滚动条并自动调整窗口大小,以确保它是全尺寸的): 我认为威尔的评论可能是正确的答案。您必须自己处理所有自定义分页代码。这绝非易事。如果我要这样做,我会想出一个或多个用

我有一个WPF窗口,我想将其保存到XPS文件(或者任何类型的存储窗口图像的文件)中。此窗口包含一个冗长的
数据网格
。到目前为止,我能够写入XPS文件,但生成的文档只包含一页,因此大部分
DataGrid
行丢失。如何让
XPSDocumentWriter
使用尽可能多的页面

以下是我到目前为止得到的结果(在写入XPS文件之前,我已经关闭了网格滚动条并自动调整窗口大小,以确保它是全尺寸的):


我认为威尔的评论可能是正确的答案。

您必须自己处理所有自定义分页代码。这绝非易事。如果我要这样做,我会想出一个或多个用户控件来处理分页数据,然后按照已知的行数拆分行(例如,第一页处理10行,溢出页处理80行),填充并将其写入文档。或者尝试创建一个自定义。
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()