Code Bye

wpf中如何处理通过image控件的句柄显示视频

 

问题:做了一个wpf的用户控件,在这个用户控件中有一个image控件,希望能够在image控件上显示视频,当然我可以通过获取视频数据,通过WriteableBitmap,然后再利用this.colorBitmap.WritePixels()实时更新位图像素来实现,但是不希望这么做,目前就想通过控件的句柄来显示视频信息。我知道wpf中的控件是没有句柄的,有人提议用如下的方法获取句柄,我试了,这样获得的句柄是指向窗体的,结果显示的视频覆盖了整个窗体,而不是在image1控件中显示。
IntPtr hwnd = ((HwndSource)PresentationSource.FromVisual(this.image1)).Handle;
如何解决这个问题呢?谢谢!

5分

是不是需要给引用的视频加个大小限制呢?
 
这个跟视频的大小是没有关系的,在winform中将picturebox控件的句柄赋值过去就在picturebox中显示。

5分

我现在也在做视频哈哈镜效果,但没有思路

5分

wpf下的控件木有句柄。你获取的是wpf窗体的句柄。
可以试试在wpf里放一个windowsformhost控件,再在里面嵌一个winform下的picturebox控件。

5分

这样获得的句柄是指向窗体的,结果显示的视频覆盖了整个窗体,而不是在image1控件中显示。
楼主你好,我正好需要在整个窗体上显示视频,用你说的IntPtr hwnd = ((HwndSource)PresentationSource.FromVisual(this.image1)).Handle;为什么不成功呢,可否指点一下?

20分

IntPtr hwnd = ((HwndSource)PresentationSource.FromVisual(img1)).Handle;这句的确是把视频给整到整个窗口里去了,而不是在控件里。
 

怎么获得WPF中嵌套了winform下的picturebox控件的句柄


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明wpf中如何处理通过image控件的句柄显示视频