0

このアニメーションを機能させようとしていますが、ディスパッチ タイマーによって呼び出されたときに何らかの理由で何も起きません。何かアイデアはありますか?

    public static void Grass2(Canvas canvas, int boundry)
    {
        foreach (var element in canvas.Children.OfType<Image>())
        {
            var elementName = Regex.Split(element.Name, "_");
            if (elementName[0] == "grass")
            {
                var skewGrass = new DoubleAnimation
                    {
                        From = 0,
                        To = boundry,
                        Duration = new Duration(TimeSpan.FromMilliseconds(100)),
                        RepeatBehavior = RepeatBehavior.Forever,
                        EasingFunction = new BackEase(),
                        AutoReverse = true
                    };
                element.BeginAnimation(SkewTransform.AngleXProperty, skewGrass);
            }
        }
    }
4

1 に答える 1

1

SkewTransform.AngleXPropertyImageタイプのオブジェクトでアニメーション化しようとしています。Imageにはこのプロパティがないため、これは機能しません。ただし、画像RenderTransformはSkewTransformに設定されている可能性があり、そのSkewTransformはアニメーション化できます。

...
// each element's RenderTransform must be a SkewTransform
var transform = (SkewTransform)element.RenderTransform;
transform.BeginAnimation(SkewTransform.AngleXProperty, skewGrass);
于 2012-11-30T20:15:12.537 に答える