FixedDocument不显示DataGrid行

时间:2015-03-05 14:23:50

标签: c# wpf wpfdatagrid flowdocument fixeddocument

我正在流文档中构建数据。用户可以更改某些属性并查看实时"打印预览"。我这样做只需将FlowDocument转换为固定文档(使用以下方法from this post)并在DocumentViewer中显示。

public static FixedDocument ToFixedDocument(this FlowDocument flowDocument)
{
    var paginator = ((IDocumentPaginatorSource)flowDocument).DocumentPaginator;
    var package = Package.Open(new MemoryStream(), FileMode.Create, FileAccess.ReadWrite);
    var packUri = new Uri("pack://temp.xps");
    PackageStore.RemovePackage(packUri);
    PackageStore.AddPackage(packUri, package);
    var xps = new XpsDocument(package, CompressionOption.NotCompressed, packUri.ToString());
    XpsDocument.CreateXpsDocumentWriter(xps).Write(paginator);
    FixedDocument doc = xps.GetFixedDocumentSequence().References[0].GetDocument(true);
    return doc;
}

但是,已添加到FlowDocument的任何数据网格都未在FixedDocument中正确呈现。它们出现在FixedDocument中,没有数据;网格的形状是正确的,有列标题和行,只有没有数据。

最初我认为可能是因为datagid包含在FlowDocument中的BlockUIContainer中,但是我有其他BlockUIContainer元素包含Grid(带TextBlocks)甚至是Xceed DataGridControl。它们都在FixedDocument中渲染得很好。

我看到其他地方还有关于显示DataGrids的问题,但是它们将DataGrid转换为Tables,或者创建一个DocumentPaginator来在跨越多个页面时重新分隔数据网格。这些都不适合我,我想在FixedDocument中看到DataGrid与FlowDocument中显示的完全相同

为什么DataGrid无法在FixedDocument中正确显示?

0 个答案:

没有答案