我正在尝试实现这样一个分页器:
public class MyPaginator : DocumentPaginator{
// ommitting details...
public override DocumentPage GetPage(int pageNumber) {
DocumentPage page = new DocumentPage(canvas);
return page;
}
}它可以编译、运行,但页面是空白的(白色)。“画布”是System.Windows.Controls.Canvas的一个实例。
当我把它放在像ScrollViewer这样的屏幕容器中时,它会完美地呈现出来。
XpsDocument _xpsDocument = CreateXpsDoc(myPaginatorInstance);唯一起作用的是将页面的大小设置为画布的大小。我遗漏了什么?
发布于 2011-10-24 08:11:26
我会(再一次)回答我自己的问题:
public override DocumentPage GetPage(int pageNumber) {
Canvas container = new Canvas();
container.Children.Add(canvas);
double scaleX = pageSize.Width / canvas.Width;
double scaleY = pageSize.Height / canvas.Height;
container.RenderTransform = new ScaleTransform(scaleX, scaleY);
container.Width = PageSize.Width;
container.Height = PageSize.Height;
container.Measure(PageSize);
container.Arrange(new Rect(new Point(0, 0), PageSize));
Rect contentBox = new Rect(PageSize);
return new DocumentPage(container, PageSize, contentBox, contentBox);
}https://stackoverflow.com/questions/7825056
复制相似问题