排序器没有打印第二个UserControl

本文关键字:第二个 UserControl 打印 排序 | 更新日期: 2023-09-27 18:12:05

当我执行print函数时,它只打印其中一页的信息,第二页是空的。如果我一次打印一个用户控件,它可以工作。请问我如何得到第二个用户控制打印信息。

单控(works)

<ScrollViewer CanContentScroll="True" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" Visibility="{Binding FedNorReportVisibility, Mode=TwoWay}">
    <StackPanel>
        <panes:PerformanceReportPage1 x:Name="FedNorReportGrid"></panes:PerformanceReportPage1>            
    </StackPanel>
</ScrollViewer>

两个控制器(不工作)

<ScrollViewer CanContentScroll="True" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" Visibility="{Binding FedNorReportVisibility, Mode=TwoWay}">
    <StackPanel>
        <panes:PerformanceReportPage1 x:Name="FedNorReportGrid"></panes:PerformanceReportPage1>
        <panes:PerformanceReportPage2 x:Name="FedNorReportGrid2"></panes:PerformanceReportPage2>
    </StackPanel>
</ScrollViewer>

打印功能:

using (var doc = new XpsDocument("C:''Users/UNKNOWN/Test2.xps", FileAccess.Write))
{
     var writer = XpsDocument.CreateXpsDocumentWriter(doc);
     var collator = writer.CreateVisualsCollator();
     collator.BeginBatchWrite();
     collator.Write(FedNorReportGrid);
     collator.Write(FedNorReportGrid2);
     collator.EndBatchWrite();
}
var doc2 = new XpsDocument("C:''Users/UNKNOWN/Test2.xps", FileAccess.Read);
var seq = doc2.GetFixedDocumentSequence();
var window = new Window();
window.Content = new DocumentViewer {Document = seq};
window.ShowDialog();

这有点奇怪。我可以让它打印两页的第一页"窗格"。第二个窗格永远不会显示任何我尝试。使用

collator.Write(FedNorReportGrid);
collator.Write(FedNorReportGrid);

排序器没有打印第二个UserControl

这是多么愚蠢....如果我封装每个窗格在自己的StackPanel,它的工作....

<StackPanel>
    <StackPanel>
        <panes:PerformanceReportPage1 x:Name="FedNorReportGrid"></panes:PerformanceReportPage1>
    </StackPanel>
    <StackPanel>
        <panes:PerformanceReportPage2 x:Name="FedNorReportGrid2"></panes:PerformanceReportPage2>
    </StackPanel>
</StackPanel>