Hi,
i have created a diagram in which when i hover a mouse on my node it come out at become slitly bigger in size. I am using following code to produce the effect.
Transform originalTransform;
DiagramNode sourceNode = cloudNode;
ScaleTransform scale = new ScaleTransform();
scale.CenterX = originBounds.X + originBounds.Width / 2;
scale.CenterY = originBounds.Y + originBounds.Height / 2;
originalTransform = sourceNode.RenderTransform;
TransformGroup tg = new TransformGroup();
tg.Children.Add(originalTransform);
tg.Children.Add(scale);
sourceNode.RenderTransform = tg;
var xa = new DoubleAnimation(1, multiplyFactor, new Duration(new TimeSpan(0, 0, 0, 0, 200)));
var ya = new DoubleAnimation(1, multiplyFactor, new Duration(new TimeSpan(0, 0, 0, 0, 200)));
if (diagram.FindName("mouseEnter") != null)
diagram.UnregisterName("mouseEnter");
diagram.RegisterName("mouseEnter", scale);
Storyboard.SetTargetName(xa, "mouseEnter");
Storyboard.SetTargetProperty(xa, new PropertyPath("ScaleX"));
Storyboard.SetTargetName(ya, "mouseEnter");
Storyboard.SetTargetProperty(ya, new PropertyPath("ScaleY"));
var sb = new Storyboard();
sb.Children.Add(xa);
sb.Children.Add(ya);
sb.Begin(diagram);
sb.Stop();
but my problem is that when mouse left the node, node doesn't become it is original size in a proper way. In other word i am unable to produce the reverse of double animation. for this i am using following code:
Transform originalTransform;
DiagramNode sourceNode = cloudNode;
ScaleTransform scale = new ScaleTransform();
scale.CenterX = originBounds.X - originBounds.Width / 2;
scale.CenterY = originBounds.Y - originBounds.Height / 2;
originalTransform = sourceNode.RenderTransform;
TransformGroup tg = new TransformGroup();
tg.Children.Add(originalTransform);
tg.Children.Add(scale);
sourceNode.RenderTransform = tg;
var xa = new DoubleAnimation(1, multiplyFactor, new Duration(new TimeSpan(0, 0, 0, 0, 200)));
var ya = new DoubleAnimation(1, multiplyFactor, new Duration(new TimeSpan(0, 0, 0, 0, 200)));
if (diagram.FindName("mouseEnter") != null)
diagram.UnregisterName("mouseEnter");
diagram.RegisterName("mouseEnter", scale);
Storyboard.SetTargetName(xa, "mouseEnter");
Storyboard.SetTargetProperty(xa, new PropertyPath("ScaleX"));
Storyboard.SetTargetName(ya, "mouseEnter");
Storyboard.SetTargetProperty(ya, new PropertyPath("ScaleY"));
var sb = new Storyboard();
sb.Children.Add(xa);
sb.Children.Add(ya);
sb.Begin(diagram);
sb.Stop();
please suggest me how can i do that.
Thanks
Ayush Neema.