Applying animated ScaleTransform in code problem

后端 未结 2 841
一生所求
一生所求 2021-01-05 06:41

I am trying to find out why the code below does not seem to work. It does not give an error - it simply doesn\'t scale. It actually does seem to work if I change it as to my

2条回答
  •  再見小時候
    2021-01-05 06:54

    Here is an example of how to animate in two different directions on a ScaleTransform, when you have a transform group. The path string shows which part is being animated. Also, because Canvas is freezable, you have to RegisterName. (I don't know what this means, but it is required)

            var storyBoard = new Storyboard();
            var group = new TransformGroup();
            var scale = new ScaleTransform(Zoom, Zoom);
            group.Children.Add(scale);
            group.Children.Add(new TranslateTransform(_translateX,_translateY));
            MainCanvas.RenderTransform = group;
    
            RegisterName("MainCanvas",MainCanvas);
    
            var growAnimation = new DoubleAnimation();
            growAnimation.Duration = TimeSpan.FromMilliseconds(1000);
            growAnimation.From = _oldZoom;
            growAnimation.To = Zoom;
            storyBoard.Children.Add(growAnimation);
    
            var growAnimation2 = new DoubleAnimation();
            growAnimation2.Duration = TimeSpan.FromMilliseconds(1000);
            growAnimation2.From = _oldZoom;
            growAnimation2.To = Zoom;
    
            storyBoard.Children.Add(growAnimation2);
    
            string thePath = "(0).(1)[0].(2)"; // Not used - just to show the syntax
    
    
            Storyboard.SetTargetProperty(growAnimation, new PropertyPath("RenderTransform.Children[0].ScaleX"));
            Storyboard.SetTargetProperty(growAnimation2, new PropertyPath("RenderTransform.Children[0].ScaleY"));
            Storyboard.SetTargetName(growAnimation, "MainCanvas");
            Storyboard.SetTargetName(growAnimation2,"MainCanvas");
            storyBoard.Begin(this);
    

提交回复
热议问题