Hola y bienvenidos a este nuevo tutorial de Kinect para Windows v2 en aplicaciones para la Windows Store.
En esta ocasión les quiero mostrar las dos maneras de implementar el Kinect en XML.
En el vídeo podrás apreciar la diferencia entre el uso del sensor en una aplicación catálogo y la misma aplicación pero con la implementación del Kinect SDK.
Para poder desarrollar para Kinect es necesario en toda ocasión agregar las 3 referencias:
Para poder eliminar las advertencias y poder empezar a desarrollar, cambia de Any CPU a x86
En el AppxManifest > capacidades > Microphone y Webcam.
Nota: Sí no agregas estas dos capacidades no podrás hacer uso del sensor y te marcará error a la hora de correr tu aplicación.
Método 1:
Busca esta instrucción en el app.xaml.cs:
if (e.PreviousExecutionState != ApplicationExecutionState.Running)
bool loadState = (e.PreviousExecutionState == ApplicationExecutionState.Terminated);
Antes de la instrucción: Window.Current.Content =rootFrame; agrega el siguiente código:
KinectRegion KinectRegion = new KinectRegion();
KinectUserViewer KinectUserViewer = new KinectUserViewer()
{
HorizontalAlignment = HorizontalAlignment.Right,
VerticalAlignment = VerticalAlignment.Top,
Height = 100,
Width = 130,
};
Grid grid = new Grid();
grid.Children.Add(KinectRegion);
grid.Children.Add(KinectUserViewer);
KinectRegion.Content = rootFrame;
Y por último sustituye rootframe por grid de la siguiente manera:
Window.Current.Content =grid;
KinectUserViewer: Es la sección en que el usuario se verá dentro de la aplicación, ubícala y dale el tamaño de acuerdo al diseño de tu aplicación.
KinectRegion: Es toda la zona donde el sensor podrá usarse y permitirá al usuario tener el control de la aplicación.
Método 2:
Busca y posiciónate arriba de esta instrucción en el app.xaml.cs:
void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
y agrega el siguiente código:
public KinectRegion KinectRegion { get; private set; }
Ahora busca la siguiente sentencia:
if (e.PreviousExecutionState != ApplicationExecutionState.Running)
bool loadState = (e.PreviousExecutionState == ApplicationExecutionState.Terminated);
Antes de la instrucción: Window.Current.Content =rootFrame; agrega el siguiente código:
KinectRegion = new KinectRegion(rootFrame,
HorizontalAlignment.Right, VerticalAlignment.Top);
Y por último sustituye rootframe por KinectRegion de la siguiente manera:
Window.Current.Content = KinectRegion;
Y verás que por ambos métodos obtenemos los mismos resultados.
~ Hasta la próxima ~