0

在我的 Windows Phone 应用程序中,我有一个继承自 UserControl 的父类文件,以及继承自该类的多个对象。所以父类 Parent.cs 不是局部的。子类是 xaml 对象,带有 xaml 文件和 cs 文件。

我想为所有孩子启用运动,因此我试图在父类中实现这一点。

这是我的代码:

    this.MoveObjectX = new DoubleAnimation();
    this.MoveObjectY = new DoubleAnimation();
    this.MoveObjectX.Duration = TimeSpan.FromMilliseconds(100);
    this.MoveObjectY.Duration = TimeSpan.FromMilliseconds(100);

    this.RenderTransform = new CompositeTransform();

    Storyboard.SetTarget(this.MoveObjectX, this.RenderTransform);
    Storyboard.SetTarget(this.MoveObjectY, this.RenderTransform);

    Storyboard.SetTargetProperty(
            this.MoveObjectX,
            new PropertyPath(CompositeTransform.TranslateXProperty));
    Storyboard.SetTargetProperty(
            this.MoveObjectY,
            new PropertyPath(CompositeTransform.TranslateYProperty));

    this.storyboardMoveObject = new Storyboard();
    this.storyboardMoveObject.Children.Add(this.MoveObjectX);
    this.storyboardMoveObject.Children.Add(this.MoveObjectY);

    this.storyboardMoveObject.Completed += new EventHandler(storyboardMoveObject_Completed);

但它不起作用。代码符合并运行,但孩子们不会动。我必须在每个孩子身上补充一点,我将双动画从数字设置为数字。

谢谢你的帮助。

4

2 回答 2

0

如果您在评论中提到从父级的构造函数调用执行移动的代码,则需要在子级的构造函数中调用父级的构造函数。它不是自动的,这就是为什么你的代码永远不会被孩子调用。

调用父级构造函数的最简单方法是附加 base()

public child():base() { ... }
于 2013-01-04T10:40:53.087 回答
0

好吧,我遇到了自己的错误:我在子类中用其他一些变换替换了 RenderTransform。我刚开始使用 TransformGroup,一切正常!

谢谢你的帮助

于 2013-01-04T14:34:34.523 回答