2013-07-29 27 views
0

我只想在彈出框上使用kinect區域。所以,當它關閉時,我不希望看到任何的動態光標或者像那樣的水手。 問題是,當彈出窗口打開時,我看不到光標。kinect region在彈出框上使用它

這是我的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]; 

任何建議對我來說都是無價的。

回答

0

你可以嘗試不同的裝訂方法:

//.. 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); 

只是一些建議,結合你的區域,你已經確定後,電流傳感器不爲空。

+0

thx,爲了回答,我在將來嘗試你的解決方案,因爲我以不同的方式製作了這個項目;) – MyWay