这是一个奇怪的问题。
我正在使用BitBlt
从与我的(WinForms)窗口句柄关联的设备上下文复制到位图,它可以正常工作(或者我认为)。
但是有一台机器,其中ElementHost中的WPF元素只是没有出现在位图上:没有一个洞,就好像它们是透明的一样,反而出现了什么。
我一直在玩一个VM,一个工作,另一个没工作。他们都有相同的操作系统版本,我已经削减了已安装的程序和功能,两者都是相同的,但仍有一个有效,另一个无效。
有没有人遇到过这个问题,有没有人有任何想法从哪里开始搜索?
更新:感谢评论中的jsanalytics提示,我发现它是Aero,可以阻止屏幕截图正常工作。现在来弄清楚为什么以及该做些什么......
答案 0 :(得分:1)
这不是 的答案,但它暂时对我有用:
如果
[DllImport("dwmapi.dll", PreserveSig = false)]
public static extern int DwmIsCompositionEnabled(out bool enabled);
返回true,然后取代BitBlt
窗口的设备上下文,我BitBlt
整个桌面,但裁剪到窗口的大小(使用GetWindowRect
并调整创建了大小的位图,然后将左侧和顶部传递到BitBlt
)。