C# 获取当前窗口后面的像素而不隐藏它

C# 获取当前窗口后面的像素而不隐藏它,c#,wpf,shader,C#,Wpf,Shader,我想在没有窗口的情况下拍摄窗口所在矩形的屏幕截图,然后通过过滤器/着色器处理该屏幕截图,然后将其作为背景应用,使其看起来像某种玻璃。 (不是航空!) 几天来我一直在想办法。 我尝试过的事情: 隐藏窗口,截图,再次显示。(闪烁的窗口,无法真正移动,因为这种情况一直在发生) DX着色器 挂钩,各种截图方法 我认为,如果我使用一个着色器和一个透明或半透明的背景,我可以使用这些像素,但尽管是透明的,我不会得到它们 最近,我一直在想,在将窗口渲染到场景中之前,是否有任何方法可以获得视频backbuf

我想在没有窗口的情况下拍摄窗口所在矩形的屏幕截图,然后通过过滤器/着色器处理该屏幕截图,然后将其作为背景应用,使其看起来像某种玻璃。 (不是航空!)

几天来我一直在想办法。 我尝试过的事情:

  • 隐藏窗口,截图,再次显示。(闪烁的窗口,无法真正移动,因为这种情况一直在发生)
  • DX着色器
  • 挂钩,各种截图方法
我认为,如果我使用一个着色器和一个透明或半透明的背景,我可以使用这些像素,但尽管是透明的,我不会得到它们

最近,我一直在想,在将窗口渲染到场景中之前,是否有任何方法可以获得视频backbuffer。 一定有办法吗

我正在使用WPF来解决这个问题,我想问一下,是否有人对如何解决这个问题有任何想法


最后,如果WPF不适合此任务,那么将是什么样的编程环境?

我可以想到的一个想法是不创建带有背景的窗口(哪个区域将阻止地下窗口重新绘制)。相反我想它不会那么闪烁了。为了能够拖动窗口,您只需要窗口标题栏。现在还不清楚你想要实现什么,也许你改变了主意,做了一些像截屏时做的事情?@Sinatr谢谢你的建议。我想如果我在桌面上使用绘图,那么我就不能再依赖WPFs效果和着色器来处理图像了。我将做一些实验,看看这是否可行:)