在打印之前阻止Scrollviewer滚动?

时间:2012-06-11 14:23:54

标签: wpf vb.net xps

我正在尝试将视觉效果打印成多页xps。第一页正在运行,但其他页面留空。

Dim xP As Integer = 0
Dim yP As Integer = 0
xP = Math.Ceiling(WorkFlowCanvas.Width / pageWidth)
yP = Math.Ceiling(WorkFlowCanvas.Height / pageHeight)
Dim collator = writer.CreateVisualsCollator()
collator.BeginBatchWrite()
For y = 1 To yP
    For x = 1 To xP
        Dim o As New Canvas
        o = New CanvasCreator().GenerateCanvas()
        Dim sv As New ScrollViewer
        sv.Height = 1200
        sv.Width = 800
        sv.Content = o
        sv.ScrollToHorizontalOffset(x - 1 * sv.Width)
        sv.ScrollToVerticalOffset(y - 1 * sv.Height)
        sv.HorizontalScrollBarVisibility = ScrollBarVisibility.Disabled
        sv.VerticalScrollBarVisibility = ScrollBarVisibility.Disabled
        collator.Write(sv)
    Next
Next
collator.Write(Me)
collator.EndBatchWrite()

通过在xaml中创建视觉并打印它,我注意到scrollviewer总是在写入之前滚动内容(滚动条不移动)。有没有办法'冻结'滚动查看器?

1 个答案:

答案 0 :(得分:0)

这个解决方案很糟糕,但似乎对我有用。

            sv.IsEnabled = False
            collator.Write(sv)
            sv.IsEnabled = True

如果你知道为什么我必须这样做,你可以回答。