Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# BitBlt和ElementHost在某些计算机上不工作_C#_.net_Wpf_Bitblt - Fatal编程技术网

C# BitBlt和ElementHost在某些计算机上不工作

C# BitBlt和ElementHost在某些计算机上不工作,c#,.net,wpf,bitblt,C#,.net,Wpf,Bitblt,这是一个奇怪的问题 我正在使用BitBlt将与我的(WinForms)窗口句柄关联的设备上下文复制到位图,它可以工作(或者我认为是这样) 但是有一台机器,ElementHost中的WPF元素没有显示在位图上:没有孔,就好像它们是透明的,后面的任何东西都会出现 我一直在玩一个虚拟机,一个工作,另一个没有。它们都有相同的操作系统版本,我已经缩减了安装的程序和功能,使两者都相同,但仍然有一个可以工作,另一个不能 有没有人遇到过这个问题,有没有人知道从哪里开始搜索 更新:感谢评论中的jsanalytic

这是一个奇怪的问题

我正在使用
BitBlt
将与我的(WinForms)窗口句柄关联的设备上下文复制到位图,它可以工作(或者我认为是这样)

但是有一台机器,ElementHost中的WPF元素没有显示在位图上:没有孔,就好像它们是透明的,后面的任何东西都会出现

我一直在玩一个虚拟机,一个工作,另一个没有。它们都有相同的操作系统版本,我已经缩减了安装的程序和功能,使两者都相同,但仍然有一个可以工作,另一个不能

有没有人遇到过这个问题,有没有人知道从哪里开始搜索

更新:感谢评论中的jsanalytics提示,我发现是Aero停止了屏幕截图的正常工作。现在要找出原因和解决方法…

这不是答案,但目前对我有效:

如果


返回true,然后不是
BitBlt
ing窗口的设备上下文,而是I
BitBlt
整个桌面,但裁剪到窗口的大小(使用
GetWindowRect
并根据大小调整创建的位图,然后将左上方传递到
BitBlt
)。我曾建议
GetLastWin32Error()
,但从未收到OP@jsanalytics的回复,谢谢。所以我可以确认是Aero造成了差异(off=有效,on=无效)。请问您得到的错误代码是什么?@jswell。。。没有帮助…:)谢谢你让我知道。
[DllImport("dwmapi.dll", PreserveSig = false)]
public static extern int DwmIsCompositionEnabled(out bool enabled);