2012-06-11 3 views
0

시각적으로 여러 페이지로 인쇄하려고합니다. 첫 번째 페이지는 작동하지만 다른 페이지는 비어 있습니다. XAML에서 시각을 만들고 그것을 인쇄하여Scrollviewer가 인쇄 직전에 스크롤하지 않도록 하시겠습니까?

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() 

은 내가 ScrollViewer에 항상 (스크롤바가 이동하지 않습니다)를 쓰기 전에 컨텐츠를 스크롤났습니다. scrollviewer를 '고정'할 수있는 방법이 있습니까?

+0

나는 더 VB 전문가는 아니지만, 일부 괄호를 놓친 것처럼 나에게 같습니다 'sv.ScrollToHorizontalOffset ((X - 1) * sv.Width)' 'sv.ScrollToVerticalOffset ((Y - 1) * sv.Height)' – Jon

+0

변경했지만 작동하지 않았습니다. 도와 주신 Thx. – DavidVdd

답변

0

이 솔루션은 해킹이지만 나를 위해 작동하는 것 같습니다.

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

내가 왜해야하는지 알면 답을 남겨주세요.

관련 문제