c# WPF scroll view 根据滚动位置打印

标签 c# wpf scroll

我在 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/

相关文章:

c# - 如何向MySQL C#插入一个值

c# - 如何判断 linq to sql 对象是新的、修改的还是未更改的?

objective-c - 永恒滚动的 UITableView

c# - .NET Framework 4.5 - EF 从 MySQL 数据库中排除 "ufloat"列

WPF Datagrid 行号

c# - WPF绑定(bind)不适用于ICommand

c# - 设置 Webview2 header 或 cookie

delphi - 如何使用一个命令将滚动条夹点发送到最顶部位置?

ios - ios的折叠工具栏布局

c# - <脚本运行在 ="server"> 与 <% %>