我正在 .a 文件的帮助下逐块打印一个大屏幕(高)ScrollViewer
。
在PrintPage
处理程序中,我向下滚动ScrollViewer
然后将实例设置PageVisual
为ScrollViewer
。当 SV 处于底部时,我将该HasMorePages
属性设置为 false。
我的问题是,这是工作的罚款条件,我提示每一页之间的MessageBox用户,否则SV不滚动在打印过程结束时除外。
我试图在 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;
}
如果我使用ManualResetEvent
withWaitOne
等待 UI 线程更新滚动条,我的浏览器会冻结...
呼叫到ScrollViewerVertical.UpdateLayout()
解决的问题
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句