我目前正在开发一个UWP应用,并使用Windows.Graphics.Printing.PrintManager
类来显示预览窗口。我有一些影响结果的控件,我会在用户更改时调用printDocument.InvalidatePreview()
来刷新预览。它工作正常,直到用户调整窗口大小。之后,在调用printDocument.InvalidatePreview()
后,预览将不会更新。
绝对不清楚InvalidatePreview
内发生了什么,因为文档非常差并且没有源代码。
有人知道修复或解决方法吗?
答案 0 :(得分:0)
我写了一个非常简单的演示试图重现你的问题,但我无法重现。我在用户更改打印预览选项后调用printDoc.InvalidatePreview()
,代码如下
if (optionId == "PageContent")
{
await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
{
printDoc.InvalidatePreview();
});
}
它运行良好,在应用程序窗口调整大小后也能正常工作。如果您订阅了InvaliddatePreview()
并且打印预览将刷新,if let user = FIRAuth.auth()?.currentUser {
print(user.anonymous)
self.signedIn(user)
}
似乎会召回PrintDocument.GetPreviewPage事件。我将demo上传到github,您可以下载测试并与您的项目进行比较以找出差异。如果通过比较差异无法解决问题,您可以尝试在此演示中重现您的问题,让我们再次帮助解决。
更多详情请参阅:https://msdn.microsoft.com/en-us/windows/uwp/devices-sensors/print-from-your-app。 官方样本:https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/Printing