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

.Net技术 码拜 9年前 (2015-08-12) 2894次浏览

 

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

IntPtr hwnd = ((HwndSource)PresentationSource.FromVisual(this.image1)).Handle;

#1

5分

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

5分

wpf下的控件木有句柄。你获取的是wpf窗体的句柄。

可以试试在wpf里放一个windowsformhost控件,再在里面嵌一个winform下的picturebox控件。

#5

5分

这样获得的句柄是指向窗体的,结果显示的视频覆盖了整个窗体,而不是在image1控件中显示。

楼主你好,我正好需要在整个窗体上显示视频,用你说的IntPtr hwnd = ((HwndSource)PresentationSource.FromVisual(this.image1)).Handle;为什么不成功呢,可否指点一下?

#9

20分

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

#10

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

#11
                    

                    <Window x:Class="VideoSurveillance.MainWindow"
                    

                            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    

                            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    

                            xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
                    

                            Title="MainWindow" Height="600" Width="800" Loaded="Window_Loaded" Closing="Window_Closing" WindowStartupLocation="CenterScreen" WindowState="Maximized">
                    

                        <Grid>
                    

                            <WindowsFormsHost HorizontalAlignment="Left" Height="300" Margin="10,10,0,0" VerticalAlignment="Top" Width="400">
                    

                                <wf:PictureBox x:Name="RealPlayWnd"></wf:PictureBox>
                    

                            </WindowsFormsHost>
                    

                        </Grid>
                    

                    </Window>
                    

                    

                    var hPlayWnd = RealPlayWnd.Handle;
                    


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明wpf中如何通过image控件的句柄显示视频。
喜欢 (0)
[1034331897@qq.com]
分享 (0)