首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PrintDocument和Scrollviewer

PrintDocument和Scrollviewer
EN

Stack Overflow用户
提问于 2017-03-01 08:50:31
回答 1查看 22关注 0票数 0

ScrollViewer的帮助下,我正在把一块大屏幕(高)打印出来。

PrintPage处理程序中,我向下滚动ScrollViewer,然后将PageVisual设置为ScrollViewer实例。当SV位于底部时,我将HasMorePages属性设置为false。

我的问题是,这是一个很好的,条件是我在每个页面之间提示用户一个MessageBox,否则除了打印过程结束之外,SV不会滚动。

我试着在UI线程上做滚动,但是没有运气:

代码语言:javascript
复制
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;
}

如果我使用ManualResetEventWaitOne来等待UI线程更新滚动,我的浏览器就会冻结.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-11 09:25:14

打电话给ScrollViewerVertical.UpdateLayout()解决了这个问题

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42527126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档