最近在程序中需要用到摄像头以及视频的展示和播放,大多数SDK运用的窗口和句柄,在winform程序中很简单,直接要用到的元素或者控件点handle就行了,但是由于winform的界面实在的跟wpf比起来,真的后者要好很多,因此能不能也在wpf中操作了,为此我度娘了下!
其实在wpf下操作也很简单,不过稍微要麻烦点:
引入命名空间:System.Windows.Interop
获取窗体的——IntPtr hwnd = new WindowInteropHelper(this).Handle;
获取控件的—— IntPtr hwnd = ((HwndSource)PresentationSource.FromVisual(uielement)).Handle;
因为WPF是画出来的,所以以上无论是用哪一种都是只能获得窗体的句柄,并不能获取到具体某个控件的。
所以在实际使用的时候常用windowformhost来操作,这样操作更加得心应手!
以下是WPF中嵌入winform操作句柄的方法:
在wpf中添加控件:
<
WindowsFormsHost
>
<
wf:PictureBox
x:Name
=
"RealPlayWnd"
></
wf:PictureBox
>
</
WindowsFormsHost
>