//DragDropDecoratorのCanvas.Top,Canvas.Leftプロパティを更新
        void inputModel_ManipulationUpdated(object sender, Microsoft.Kinect.Input.KinectManipulationUpdatedEventArgs e)
        {
            //DragDropDecoratorの親はCanvas
            Canvas canvas = dragDropDecorator.Parent as Canvas;

            if (canvas != null)
            {
                double y = Canvas.GetTop(dragDropDecorator);
                double x = Canvas.GetLeft(dragDropDecorator);
                if (double.IsNaN(x) || double.IsNaN(y))
                {
                    return;
                }
                PointF delta = e.Delta.Translation;
                //deltaは-1.0..1.0の相対値で表されているのでKinectRegionに合わせて拡大
                var Dy = delta.Y * kinectRegion.ActualHeight;
                var Dx = delta.X * kinectRegion.ActualWidth;
                Canvas.SetTop(dragDropDecorator, y + Dy);
                Canvas.SetLeft(dragDropDecorator, x + Dx);
            }
        }
        private void InputModel_ManipulationUpdated(object sender, Microsoft.Kinect.Input.KinectManipulationUpdatedEventArgs e)
        {
            //Console.Write("\nInputModel_ManipulationUpdated: " + myThumb.index);
            var parentCanvas = myThumb.Parent as Canvas;
            var delta        = e.Delta.Translation;
            var yDelta       = delta.Y * this.kinectRegion.ActualHeight;
            var xDelta       = delta.X * this.kinectRegion.ActualWidth;
            int count        = 0;

            // myThumb.getWindowRef().ActionText.Text = "Dragging " + myThumb.Name;

            if (myThumb.getWindowRef().wholeGroupSelected)
            {
                //Console.Write("\nLoop..............................................................................................");
                foreach (MyThumb thumb in myThumb.getWindowRef().getGroupModeObject().currentSelectedGroup.getListOfThumbs())
                {
                    var y = Canvas.GetTop(thumb);
                    var x = Canvas.GetLeft(thumb);
                    if (double.IsNaN(y))
                    {
                        y = 0;
                    }
                    if (double.IsNaN(x))
                    {
                        x = 0;
                    }
                    //Console.Write("\nInputModel_ManipulationUpdated: " + (count++) + " => " + yDelta + " , " + xDelta + " , " + y + " , " + x);

                    // delta values are 0.0 to 1.0, so we need to scale it to the number of pixels in the kinect region
                    if (parentCanvas != null)
                    {
                        if (Canvas.GetLeft(thumb) > 0)
                        {
                            Canvas.SetTop(thumb, y + yDelta);
                            Canvas.SetLeft(thumb, x + xDelta);
                        }
                        else
                        {
                            Canvas.SetTop(thumb, y + yDelta);
                            Canvas.SetLeft(thumb, 1);
                        }

                        myThumb.getWindowRef().dragWholeGroupUpdate(thumb);
                    }
                }
            }
            else
            {
                var y = Canvas.GetTop(myThumb);
                var x = Canvas.GetLeft(myThumb);
                if (double.IsNaN(y))
                {
                    y = 0;
                }
                if (double.IsNaN(x))
                {
                    x = 0;
                }

                // delta values are 0.0 to 1.0, so we need to scale it to the number of pixels in the kinect region
                //var yDelta = delta.Y * this.kinectRegion.ActualHeight;
                //var xDelta = delta.X * this.kinectRegion.ActualWidth;
                if (parentCanvas != null)
                {
                    if (Canvas.GetLeft(myThumb) > 0)
                    {
                        Canvas.SetTop(myThumb, y + yDelta);
                        Canvas.SetLeft(myThumb, x + xDelta);
                    }
                    else
                    {
                        Canvas.SetTop(myThumb, y + yDelta);
                        Canvas.SetLeft(myThumb, 1);
                    }
                }

                myThumb.getWindowRef().UpdateAllForAThumb(myThumb);
            }
        }