Example #1
0
        /// <summary>
        /// Executed when node is moved.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="e">The <see cref="Palmmedia.WpfGraph.UI.ViewModels.NodeMovedEventArgs"/> instance containing the event data.</param>
        protected virtual void NodeMoved(object sender, NodeMovedEventArgs e)
        {
            if (e.Duration > 0)
            {
                var transAnimationX = new DoubleAnimation();
                transAnimationX.Duration     = TimeSpan.FromMilliseconds(e.Duration);
                transAnimationX.From         = this.TranslateTransform.OffsetX;
                transAnimationX.To           = e.NewPosition.X;
                transAnimationX.FillBehavior = FillBehavior.Stop;

                var transAnimationY = new DoubleAnimation();
                transAnimationY.Duration     = TimeSpan.FromMilliseconds(e.Duration);
                transAnimationY.From         = this.TranslateTransform.OffsetY;
                transAnimationY.To           = e.NewPosition.Y;
                transAnimationY.FillBehavior = FillBehavior.Stop;

                var transAnimationZ = new DoubleAnimation();
                transAnimationZ.Duration     = TimeSpan.FromMilliseconds(e.Duration);
                transAnimationZ.From         = this.TranslateTransform.OffsetZ;
                transAnimationZ.To           = e.NewPosition.Z;
                transAnimationZ.FillBehavior = FillBehavior.Stop;

                transAnimationZ.Completed += new EventHandler((s, a) => this.ApplyPosition(e.NewPosition, e.Callback));

                this.TranslateTransform.BeginAnimation(TranslateTransform3D.OffsetXProperty, transAnimationX);
                this.TranslateTransform.BeginAnimation(TranslateTransform3D.OffsetYProperty, transAnimationY);
                this.TranslateTransform.BeginAnimation(TranslateTransform3D.OffsetZProperty, transAnimationZ);
            }
            else
            {
                this.ApplyPosition(e.NewPosition, e.Callback);
            }
        }
 /// <summary>
 /// Raises the Moved event.
 /// </summary>
 /// <param name="e"></param>
 protected virtual void RaiseMoved(NodeMovedEventArgs e)
 {
     Moved.Raise(this, e);
 }