我在 WPF C# 上构建了一个保存发票的应用程序,并创建了一个分配给 ScrollView 的用户控件。 一切都很完美,直到我注意到这个非常烦人的打印错误。
因此用户控件的大小为 A4。如果 ScrollView 在打印时滚动到顶部:
**PrintDialog pd = new PrintDialog();
pd.PrintVisual(scrollView, "print this off");**
没有问题发生。但是,如果 ScrollView 位于中间或底部,它会打印出一个偏移量。 我试图通过在打印前将 ScrollView 移动到顶部来解决这个问题,它确实这样做了,但是打印出来的是错误的...
**scrollView.ScrollToHome();
PrintDialog pd = new PrintDialog();
pd.PrintVisual(scrollView, "print this off");**
但如果我再次点击打印按钮,它会正确打印。我不知道为什么它会在将它移到顶部之前打印出来,因为这是我对此的唯一解释......
请帮忙
最佳答案
滚动回家后调用 UpdateLayout()
:
scrollView.ScrollToHome();
scrollView.UpdateLayout();
(来自 UpdateLayout() 函数的文档:“确保此元素的所有可视子元素都针对布局进行了正确更新。”)
关于c# WPF scroll view 根据滚动位置打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35611481/