这段代码应该给我一个FilterInfo对象的集合,代表所选类别中的连接设备,在这种情况下是网络摄像头。
FilterInfoCollection collection = new FilterInfoCollection(FilterCategory.VideoInputDevice);
我在控制台应用程序中对此进行了测试,它运行良好,但是当我将代码带入WPF时,它只返回一个对象。
我尝试直接在xaml codebehind和viewmodel中使用它绑定到xaml控件,但结果相同。
这太令人沮丧了 在此先感谢=)
编辑:
我找到原因,WPF项目“Platform Target”设置为“Any CPU”,控制台应用程序设置为x86。 当我将控制台应用程序“平台目标”设置为“任何cpu”时,它完全相同。
但不幸的是,WPF项目在设置为x86时不会运行
答案 0 :(得分:0)
在这里猜测,但听起来像FilterInfoCollection根据驱动程序是x64还是x86返回差异。
如果强制它在x86模式下编译,那么它就能够检索所有x86驱动程序。
任何CPU模式都将在x64或x86中执行,具体取决于安装的操作系统。如果它是64位操作系统,那么它将以x64模式运行。这意味着它只会返回基于x64的驱动程序,其中听起来只是系统上安装了一个。
关于运行平台目标为x86的WPF应用程序的问题,您应该提供更多详细信息,例如您看到的错误。这里应该没有问题:Setting platform target to x86 on my x64 laptop prevent some WPF types to load properly
答案 1 :(得分:0)
您是否尝试将Target Framework从4.0更改为3.5?因为我有一个类似的问题,当我改变目标框架时它很好。
答案 2 :(得分:0)
我尝试在同一个解决方案中创建一个新的WPF项目,现在它可以工作了。 有时我讨厌充满激情的代码...... = P
感谢您的帮助! 如果这件事再次发生,我会睁大眼睛。