1

这是底线:我试图避免使用 RDLC/SSRS,而是从我的 XAML 创建 XPS 文件。

我在这里合并了各种文章中的代码片段,我正在 (1) 从我的页面克隆我需要的 XAML 对象,以及 (2) 将它们传递到 XPS 对象中的新页面

这个过程似乎适用于我仍然可以使用代码修改的非数据绑定对象。这是一个简单的示例,展示了我如何克隆现有标签:

pgeIncidentReport newPage = new pgeIncidentReport();

string Xaml = XamlWriter.Save(newPage.lblHeader);
StringReader stringReader = new StringReader(Xaml);
XmlReader xmlReader = XmlReader.Create(stringReader);
System.Windows.Controls.Label newL = System.Windows.Controls.Label)XamlReader.Load(xmlReader);

FixedDocument fixedDoc = new FixedDocument();
PageContent pageContent = new PageContent();
FixedPage fixedPage = new FixedPage();

//Create first page of document
fixedPage.Children.Add(newL);

但是,当我将相同的代码应用于包含 DataContext 的对象时,它不会呈现内容。它将呈现对象本身,就像它可能显示列表框的轮廓或数据网格的一个空列一样,但它不会显示任何其他数据。我已经确认我正在从渲染中提取对象的页面正确呈现,只有在克隆和 XPS 渲染中对象数据才会丢失。

帮助。

4

0 回答 0