Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Microsoft Kinect SDK 1.6 missing KinectSensorChooser component?

I am currently following this tutorial

http://channel9.msdn.com/Series/KinectQuickstart/Setting-up-your-Development-Environment

But at around 9:50 he uses a component called KinectSensorChooser which is not available anymore in the latest SDK 1.6 version because i read Microsoft's SDK History log that states

"We’ve taken KinectSensorChooser, formerly part of the WpfViewers and split the logic and UI into two different classes: KinectSensorChooser and KinectSensorChooserUI in Microsoft.Kinect.Toolkit.dll. KinectSensorChooser could be used in non-WPF scenarios as it is logic only, no UI."

Source: http://www.windows7download.com/win7-kinect-sdk/history-lxqvgakz.html

Since the Microsoft.Kinect does not include the KinectSensorChooser component i added the Microsoft.Kinect.Toolkit reusable component which does include the KinectSensorChooser but the component is not showing up in the toolbox, i tried adding it manually by right clicking on the toolbox and selecting choose items then WPF components then locating it but it imports as a UI (KinectSensorChooserUI) and if i drag it onto the form the component disappears from the toolbox, i am using Visual Studio 2012 Ultimate on Windows 8

like image 383
Jimmy Neutron Avatar asked Nov 25 '12 20:11

Jimmy Neutron


1 Answers

I've never added the KinectSensorChooserUI control to the toolbox in Visual Studio. The need to do so really isn't there.

If you feel obligated to do so, I found a Adding Your WPF Control To The Toolbox blog post that might be of use. Haven't tried it myself, so I can not promise it will work.

I personally do not use the UI component of the KinectSensorChooser. Unless you really plan to be turning the Kinect on/off or switching between multiple Kinects manually, it doesn't really serve much of a purpose. It does provide some feedback, but that can done in other more aesthetically pleasing ways.

To use the KinectSensorChooser you simple need the following in your main class:

private readonly KinectSensorChooser _sensorChooser = new KinectSensorChooser();

public MainViewModel()
{
    // other initialization here

    _sensorChooser.Start();

    // more initialization here
}

You now have an active KinectSensorChooser, just minus the UI.

If you are dedicated to using the UI component, forgo trying to add it to the toolbox and just do the following:

  1. Add the Toolkit project or a reference to the .dll.
  2. Add the namespace to your Xaml so that you can reference the controls in your markup. xmlns:kt="clr-namespace:Microsoft.Kinect.Toolkit;assembly=Microsoft.Kinect.Toolkit"
  3. Add the control to your visual tree <kt:KinectSensorChooserUI x:Name="SensorChooserUI" />

Your code behind would declare the namespace, initialize the KinectSensorChooser and set up any events you want.

using Microsoft.Kinect;
using Microsoft.Kinect.Toolkit;

private readonly KinectSensorChooser _sensorChooser = new KinectSensorChooser();

// somewhere in your constructor, or other init function
this.SensorChooserUI.KinectSensorChooser = _sensorChooser;
_sensorChooser.Start();
like image 200
Nicholas Pappas Avatar answered Oct 12 '22 22:10

Nicholas Pappas