外部窗口上的图像叠加

时间:2010-03-17 16:47:12

标签: c# wpf image window overlay

我正在编写一个C#WPF应用程序,用于创建活动窗口的视频捕获。我想要做的是在捕获过程中在活动窗口的角落覆盖透明的.png文件,以便我的应用程序创建的所有视频都带有水印。

如果我有正在捕获的窗口的IntPntr句柄和图像文件 - 最好的方法是什么?

由于

1 个答案:

答案 0 :(得分:1)

构造一个新的HwndSource,传递父级的IntPtr句柄:

var hwndSource = new HwndSource(new HwndSourceParameters("OverlayWindow")
{
  ParentWindow = parentHandleIntPtr,
  UsesPerPixelOpacity = true,
  Width = 100,
  Height = 100,
})
{
  RootVisual = new Image { Source = watermarkBitmapSource },
};

如果这不能立即生效,请在常规WPF窗口中测试“新图像...”代码,以确保其正常工作。如果您仍然没有看到任何内容,请尝试使用HwndSource呈现类似CheckBox或TextBlock的内容以确保其有效,然后将它们组合在一起。