使用带有两个窗口的一个运动学

本文关键字:一个 运动学 窗口 两个 | 更新日期: 2023-09-27 18:26:00

我是WPF、C#和Kinect的新手。但我已经找到了如何初始化kinect,并显示两个窗口。我的应用程序是一个玩具应用程序,有一个带按钮的全屏应用程序,当用户点击时,它应该会打开一个新窗口。

我试过了,但有两件事不起作用:

  • 当新窗口打开时,kinect用户视图将不会显示任何身体
  • 关闭窗口(返回主窗口)时,应用程序崩溃

原型窗口XAML如下所示:

<Window ...>
   <k:KinectRegion Name="region_">
      <Grid>
         <k:KinectUserView .../>
      </Grid>
   </k:KinectRegion>
</Window>

在C#方面,我有一个这样的原型类:

public partial class MainWindow : Window
{
   public KinectSensor sensor_ = KinectSensor.GetDefault();
   public MainWindow()
   {
      //...
      KinectRegion.SetKinectRegion(this, region_);
      this.sensor_.Open();
   }
}

第二个页面(具有与上面相同的构造函数)有一个按钮,它调用一个函数,基本上是sensor_.Close()this.Close()

我可以在多个窗口中使用单个kinect吗?如果没有(请告诉我我可以!)我如何才能有两种"观点"?在网上浏览AFAIK阅读,要求NavigationWindow,VS抱怨我无法添加运动区域。

谢谢!

使用带有两个窗口的一个运动学

事实证明,您不需要关闭传感器。为了让更多的窗口与一个传感器一起工作:

  • 将主窗口中初始化的KinectSensor传递到"子"窗口
  • 初始化子区域

你只需要this.Close(),而不需要再打开或关闭流。Kinect用户视图工作得很完美。