如何从 FixedDocument 中删除 FixedPage?
How to remove FixedPage from FixedDocument?
我正在使用 DocumentViewer 在允许用户打印或保存文档之前向用户显示 FixedDocument。我已经编辑了 DocumentViewer 面板以具有一个复选框,允许用户 select 如果他们想要文档中的图表。
我能够获取复选框被选中的事件及其值,但我无法找到一种方法来从 FixedDocument 中删除图表并且不会在末尾留下空白页。我目前拥有它,以便在复选框上单击我隐藏并显示图表,但这又会留下一个空白页面。
if (value) BarChart.Visibility = Visibility.Visible;
else BarChart.Visibility = Visibility.Collapsed;
我也试过在复选框事件上重建 FixedDocument 并使用复选框值来决定是否包含图形页面。文档第一次呈现良好,然后在取消选中复选框后图表页面消失,然后当重新选中复选框时图表页面显示但图表没有数据(缺少系列)。
有什么想法吗?
这可能是图表数据绑定的问题还是 FixedDocument 的问题?
注意:
我正在后面的代码中构建图表并像这样添加它:
// Add other pages to ReportDocument here
if (IncludeGraphPage)
{
// Add graph page
PageContent ChartDocumentPageContent = new PageContent();
FixedPage ChartDocumentPage = new FixedPage();
ChartDocumentPage.Margin = new Thickness(20);
ChartDocumentPage.Children.Add(BarChart);
((IAddChild)ChartDocumentPageContent).AddChild(ChartDocumentPage);
ReportDocument.Pages.Add(ChartDocumentPageContent);
}
// Set the document viewer content
DocumentViewer.Document = ReportDocument;
我已经查看了其他 SO 问题,但还没有适合我的解决方案。
我想出了一种方法来重建 FixedDocument 而不会使图表系列消失。关键是像这样将图表添加为 VisualBrush:
VisualBrush chartBrush = new VisualBrush(BarChart) { Stretch = Stretch.Uniform };
Rectangle ChartRectangle = new Rectangle { Width = (1056-2*96), Height = (816 - 2*96), Fill = chartBrush };
ChartDocumentPage.Children.Add(ChartRectangle);
我正在使用 DocumentViewer 在允许用户打印或保存文档之前向用户显示 FixedDocument。我已经编辑了 DocumentViewer 面板以具有一个复选框,允许用户 select 如果他们想要文档中的图表。
我能够获取复选框被选中的事件及其值,但我无法找到一种方法来从 FixedDocument 中删除图表并且不会在末尾留下空白页。我目前拥有它,以便在复选框上单击我隐藏并显示图表,但这又会留下一个空白页面。
if (value) BarChart.Visibility = Visibility.Visible;
else BarChart.Visibility = Visibility.Collapsed;
我也试过在复选框事件上重建 FixedDocument 并使用复选框值来决定是否包含图形页面。文档第一次呈现良好,然后在取消选中复选框后图表页面消失,然后当重新选中复选框时图表页面显示但图表没有数据(缺少系列)。
有什么想法吗?
这可能是图表数据绑定的问题还是 FixedDocument 的问题?
注意: 我正在后面的代码中构建图表并像这样添加它:
// Add other pages to ReportDocument here
if (IncludeGraphPage)
{
// Add graph page
PageContent ChartDocumentPageContent = new PageContent();
FixedPage ChartDocumentPage = new FixedPage();
ChartDocumentPage.Margin = new Thickness(20);
ChartDocumentPage.Children.Add(BarChart);
((IAddChild)ChartDocumentPageContent).AddChild(ChartDocumentPage);
ReportDocument.Pages.Add(ChartDocumentPageContent);
}
// Set the document viewer content
DocumentViewer.Document = ReportDocument;
我已经查看了其他 SO 问题,但还没有适合我的解决方案。
我想出了一种方法来重建 FixedDocument 而不会使图表系列消失。关键是像这样将图表添加为 VisualBrush:
VisualBrush chartBrush = new VisualBrush(BarChart) { Stretch = Stretch.Uniform };
Rectangle ChartRectangle = new Rectangle { Width = (1056-2*96), Height = (816 - 2*96), Fill = chartBrush };
ChartDocumentPage.Children.Add(ChartRectangle);