I'm trying to print a scroller a UIelement
, or anything multipage for that matter.
I've inherited from DocumentPaginator
, and it prints, it even prints the right amount of pages.
The trouble is it keeps printing the first page, over and over.
Here is my paginator:
public class MyPaginator : DocumentPaginator {
ScrollViewer _printStuff;
public MyPaginator(ScrollViewer document, PaperSize pageSize) {
_printStuff = document;
_pageSize.Height = 100; //pageSize.Height;
_pageSize.Width = 100; //pageSize.Width;
}
public override DocumentPage GetPage(int pageNumber) {
_printStuff.ScrollToVerticalOffset((PageSize.Height * pageNumber));
_printStuff.UpdateLayout();
DocumentPage dp = new DocumentPage(_printStuff);
return dp;
}
public override bool IsPageCountValid {
get { return true; }
}
private int _pageCount;
public override int PageCount {
get {
if (_pageCount == 0) {
this.ComputePageCount();
}
return _pageCount;
}
}
private Size _pageSize;
public override Size PageSize {
get {
return _pageSize;
}
set {
_pageSize = value;
}
}
public override IDocumentPaginatorSource Source {
get { return null; }
}
public override void ComputePageCount() {
//base.ComputePageCount();
var totalHeight = 0d;
if (totalHeight == 0) {
totalHeight = _printStuff.DesiredSize.Height;
}
var pc = (totalHeight / PageSize.Height);
_pageCount = (int)Math.Ceiling(pc);
}
}
And here is my calling code:
PrinterSettings ps = new PrinterSettings();
var printDialog = new PrintDialog();
var paginator = new MyPaginator(scroller, ps.DefaultPageSettings.PaperSize);
printDialog.PrintDocument(paginator, "My Receipt");
and here is my user control:
<UserControl x:Class="TestVBS.Views.PrintTest2"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300" Name="myBox">
<ScrollViewer Name="scroller">
<Grid Name="layout">
<StackPanel>
<Button Content="Button" HorizontalAlignment="Left" Margin="94,31,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click_1"/>
<TextBlock>HEllow </TextBlock>
<TextBlock>adsfas</TextBlock>
<TextBlock>HEllow</TextBlock>
<TextBlock>adsfas</TextBlock>
<TextBlock>HEllow</TextBlock>
<TextBlock>adsfas</TextBlock>
<TextBlock>HEllow</TextBlock>
<TextBlock>adsfas</TextBlock>
<TextBlock>HEllow</TextBlock>
<TextBlock>adsfas</TextBlock>
<TextBlock>HEllow</TextBlock>
<TextBlock>adsfas</TextBlock>
<TextBlock>HEllow</TextBlock>
<TextBlock>adsfas</TextBlock>
<TextBlock>HEllow</TextBlock>
<TextBlock>adsfas</TextBlock>
<TextBlock>HEllow</TextBlock>
<TextBlock>adsfas</TextBlock>
<TextBlock>HEllow</TextBlock>
<TextBlock>adsfas</TextBlock>
<TextBlock>HEllow</TextBlock>
<TextBlock>adsfas</TextBlock>
<TextBlock>HEllow</TextBlock>
<TextBlock>adsfas</TextBlock>
<TextBlock>HEllow</TextBlock>
<TextBlock>adsfas</TextBlock>
<TextBlock>HEllow</TextBlock>
<TextBlock>adsfas</TextBlock>
<TextBlock>HEllow</TextBlock>
<TextBlock>adsfas</TextBlock>
<TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>
<TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
<TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>
<TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
<TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>
<TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
<TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>
<TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
<TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>
<TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
<TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>
<TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
<TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>
<TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
<TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>
<TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
<TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>
<TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
<TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>
<TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
<TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>
<TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
<TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>
<TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
<TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>
<TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
<TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>
<TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
<TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>
<TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
</StackPanel>
</Grid>
</ScrollViewer>
Why won't it print the second, third and fourth pages?