如何以正确的大小和内容截取 WPF 应用程序的屏幕截图

如何以正确的大小和内容截取 WPF 应用程序的屏幕截图

我通常通过内置组合键Alt+截取单个窗口的屏幕截图Print。不幸的是,这对越来越多的应用程序来说效果不佳——它们都是 WPF 应用程序。

通常屏幕截图至少具有以下属性之一:

  • 屏幕截图比预期的要大,并且包含实际窗口周围的屏幕部分

  • 屏幕截图大小正确,但包含其他窗口的部分内容,例如 Windows 任务栏。当然,任务栏可能位于窗口前面,但对“普通”程序进行屏幕截图则没问题。

如何截取大小和内容正确的 WPF 应用程序屏幕截图?

我想避免额外的努力来检查所有屏幕截图的正确性、重现情况、在出现问题时再次拍摄它们或在任何像素操作程序(例如 Paint.NET)中手动修复/伪造它们。

我在 Windows 7 x64 SP 1 上观察到了这一点,安装了所有官方更新,但它也可能适用于其他 Windows 版本(尚未测试)。安装了 .NET 4.5。应用程序本身可能只需要内置的 .NET 3.5.1。

它可以在具有相同设置的虚拟机上重现。

例子:

以最大化模式运行的应用程序的屏幕截图。屏幕截图包括任务栏的部分内容。

屏幕截图 1 - 最大化的应用程序显示任务栏

任务栏后面的进度对话框的屏幕截图。屏幕截图还包括任务栏,而非 WPF 应用程序则不包括。

屏幕截图 2 - 任务栏后面的进度条

相关内容