在WPF中,我有一个自定义用户控件。我正在覆盖OnRender事件并使用mediaplayer绘制视频。然后我用Alpha透明度覆盖了一个位图。这一切都很好。视频播放并显示位图覆盖没有问题。但是我然后按一下按钮就需要拍摄当前视频帧的快照,其中包括位图叠加层,并将其保存到位图。视频播放或暂停时,用户可以随时单击按钮。
这是我的代码。这样可以。如何在按下按钮时获取当前视频帧的快照和位图覆盖。重叠事件发生在onrender事件内部后,如何直接从设备上下文中将二者合并?
protected override void OnRender(DrawingContext drawingContext)
{
base.OnRender(drawingContext);
if (_mediaPlayer != null && _mediaPlayer.Source != null && !string.IsNullOrEmpty(_mediaPlayer.Source.ToString()))
drawingContext.DrawVideo(_mediaPlayer, new Rect(0, 0, this.ActualWidth, this.ActualHeight));
if (_bitmapImageOverlay != null)
drawingContext.DrawImage(_bitmapImageOverlay, new Rect(0, 0, this.ActualWidth, this.ActualHeight));
}