Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在wpf中使用RGE视频播放器_Wpf_Aforge - Fatal编程技术网

在wpf中使用RGE视频播放器

在wpf中使用RGE视频播放器,wpf,aforge,Wpf,Aforge,我在wpf中使用了一个arge:videosourceplayer,我遇到的麻烦是:为了在wpf中使用一个arge:videosourceplayer,我们必须将它放在WindowsFormsHost标记中。如果我不想使用WindowsFormsHost,还有其他选择吗 <WindowsFormsHost Margin="5,5,5,201" Name="windowFormsHost" Panel.ZIndex="0"> <aforge:VideoSourceP

我在wpf中使用了一个arge:videosourceplayer,我遇到的麻烦是:为了在wpf中使用一个arge:videosourceplayer,我们必须将它放在WindowsFormsHost标记中。如果我不想使用WindowsFormsHost,还有其他选择吗

<WindowsFormsHost Margin="5,5,5,201" Name="windowFormsHost" Panel.ZIndex="0">
       <aforge:VideoSourcePlayer x:Name="videoSourcePlayer" Height="200"  Margin="12,30,0,0" Width="360">
</aforge:VideoSourcePlayer>


非常感谢您的帮助。

不幸的是没有,因为WinForms元素与WPF元素的绘制方式不同,因此必须放在单独的hWND中(请参见下面的链接)

您没有要求,但我相信您正在寻找替代方案,因为在WPF窗口中使用WinForms时遇到了问题

如果您使用的是.NET 4或更旧版本,那么您在上面的代码中指定的ZIndex属性将被忽略;-),WPF窗口中的WinForm元素将被绘制在所有其他元素之上(您可以在此处阅读更多信息:)

这就是为什么我们最终制作了自己的播放器,尝试和布局WinForm元素是非常令人不安的(我们需要滚动功能,无法找到一种简单的方法让WinFormEl.部分消失,而不在VideoSourcePlayer上进行一些丑陋的调整)

如果您使用.NET4.5,您可以对ZIndex(和其他布局属性)进行更多的控制,正如您所看到的(除了.NET4.5之外,与上面的文章相同)


注意:我记得读过一篇博文,其中说isRedirected&CompositionMode属性(您需要这些属性,以便能够在WPF中正确布局您的WinForms,如上面的链接所述)被排除在4.5版本之外,但找不到任何官方声明(最安全的方法是尝试:-))。

我也有同样的问题;您喜欢Aforge框架,但不喜欢WindowsFormsHost。最终在这里找到了解决办法

Sagar Mohite通过创建compatibility.dll克服了这个问题,该dll允许您将位图转换为正确的格式,以便可以在图像元素而不是VideoSourcePlayer中表示位图。还需要一个DispatcherObject,但所需的少量代码都在链接中+下载dll,您可以开始将WPF控件覆盖到您的大型视频源上