kinect区域在弹出窗口中使用

本文关键字:窗口 区域 kinect | 更新日期: 2023-09-27 18:25:16

我只想在弹出窗口中使用kinect区域。所以,当它关闭时,我不想看到任何动态光标或类似的smth。问题是,当弹出窗口打开时,我看不到光标。

这是我的xaml代码,我在区域内有弹出窗口。

 <k:KinectRegion Name="kurs" Margin="0,0,0,0" >
            <Popup  Placement="Left" PlacementTarget="{Binding ElementName=OptionOfDrawing}" PopupAnimation="Fade" x:Name="Popup" 
                   IsOpen="False">
                <StackPanel Height="325" Width="492" Background="White">
                    <TextBlock Margin="0 0 0 0">FontSize</TextBlock>
                    <k:KinectScrollViewer VerticalScrollBarVisibility="Disabled" HorizontalScrollBarVisibility="Auto" 
                                      VerticalAlignment="Bottom">
                        <StackPanel Orientation="Horizontal" Name="MyScroll" />
                    </k:KinectScrollViewer>
                    </Grid>
                </StackPanel>
            </Popup>
        </k:KinectRegion>

我添加了这个名称空间

 xmlns:k="http://schemas.microsoft.com/kinect/2013".

这是我的密码。

      void MainWindow_Loaded(object sender, RoutedEventArgs e)
    {
      if (sen != null && this.Popup.IsOpen == true) 
            kurs.KinectSensor = KinectSensor.KinectSensors[0];

        sen = KinectSensor.KinectSensors.FirstOrDefault();
        if (sensor == null)
        {
            MessageBox.Show("I need kinect");
            this.Close();
        }

        sen.ColorStream.Enable();
        sen.ColorFrameReady += new EventHandler<ColorImageFrameReadyEventArgs>(sensor_ColorFrameReady);
        sen.DepthStream.Enable(); 
        sen.SkeletonStream.Enable();

        sen.SkeletonFrameReady += new EventHandler<SkeletonFrameReadyEventArgs>( sensor_SkeletonFrameReady);
        sen.DepthFrameReady += new EventHandler<DepthImageFrameReadyEventArgs>( sensor_DepthFrameReady);
        interactionstream = new InteractionStream(sen, new NewInteractionClient());
        interactionstream.InteractionFrameReady += new EventHandler<InteractionFrameReadyEventArgs>( interactionstream_InteractionFrameReady);

        sen.Start();
        sen.ElevationAngle = 0;
}

我几乎可以肯定,一个kinect设备不能连接到两个不同的KinectSensor对象。所以,当弹出窗口打开时,kinect设备连接到该区域,而这条线不应该执行?

sen = KinectSensor.KinectSensors[0];

任何建议对我来说都是无价的。

kinect区域在弹出窗口中使用

您可以尝试不同的绑定方法:

//.. Bind the sensor to your KinectRegion - kurs
var regionSensorBinding = new Binding("Kinect") { Source = kurs };
BindingOperations.SetBinding(kurs, KinectRegion.KinectSensorProperty, regionSensorBinding);

这将在代码隐藏部分中完成。

是否要清除此绑定:

//.. Clear your region binding
BindingOperations.ClearBinding(kurs, KinectRegion.KinectSensorProperty);

只是一些建议,在确定当前传感器不为空后绑定到您的区域。