0
ScrollViewer
の助けを借りて、大きな画面(高さ)をいくつか印刷しています。
PrintPage
ハンドラでは、ScrollViewer
をスクロールしてPageVisual
をScrollViewer
インスタンスに設定します。 SVが底にあるとき、私はHasMorePages
プロパティをfalseに設定します。
問題はこれが正常に動作していることです。の条件では、各ページ間でMessageBoxを使用するようにユーザーに指示します。そうしないと、印刷プロセスの最後を除いてSVはスクロールしません。PrintDocumentとScrollviewer
私は、UIスレッドが、運にスクロールを実行しようとしました:
void Print_PrintPage(object sender, PrintPageEventArgs e)
{
// DefPage contains properties of the printed page
DefPage defPage = _enumeratorPages.Current;
e.HasMorePages = _enumeratorPages.MoveNext();
ScrollViewerVertical.Dispatcher.BeginInvoke(delegate {
ScrollViewerVertical.ScrollToVerticalOffset(defPage.OffsetY);
});
e.PageVisual = ScrollViewerVertical;
}
そして私は、スクロールを更新するUIスレッド、私のブラウザの凍結を待つWaitOne
とManualResetEvent
を使用している場合...