Windows phone 7 Windows phone:从父类文件设置usercontrol动画

Windows phone 7 Windows phone:从父类文件设置usercontrol动画,windows-phone-7,xaml,Windows Phone 7,Xaml,在我的Windows Phone应用程序中,我有一个从UserControl继承的父类文件,以及从该类继承的多个对象。因此父类parent.cs不是分部的。 子类是xaml对象,包含xaml文件和cs文件 我想让所有的孩子都能运动,因此我试图在家长课堂上做到这一点 这是我的密码: this.MoveObjectX = new DoubleAnimation(); this.MoveObjectY = new DoubleAnimation(); this.MoveObje

在我的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);
但它不起作用。代码遵从并运行,但子级不会移动。 我必须加上,在每个孩子,我设置了双动画从和到数字


感谢您的帮助。

如果如您在注释中所述,执行移动的代码是从父级构造函数调用的,则需要在子级构造函数中调用父级构造函数。这不是自动的,这就是为什么你的代码从来没有被调用的孩子

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


好吧,我有我自己的错误:我用子类中的其他转换替换RenderTransform。我刚开始使用TransformGroup,一切正常


感谢您的帮助

此代码位于何处,您如何调用它?此代码已正确调用,但我实际上不确定此体系结构是否可以工作:扩展UserControl的Parent.cs(非partial)和扩展Parent.cs的子级(xaml和code behind,partial)。我的意思是,它是有效的,但显然不适用于故事板和复合翻译。我真的不知道是什么在这里起作用。@不,我的问题是,如果此代码在虚拟方法、受保护方法或其他方法中,请看下面的过程:1。上面的代码在类的构造函数中调用的私有方法中。2.storyboard.Begin方法在同一类(MoveObject())3的内部方法中调用。在方法:storyboardMoveObject_完成后,会再次调用MoveObject。因此,其中没有继承的逻辑。所有子类的移动必须是相同的,这就是为什么我想把它放在超类中。谢谢你的回答,但我确实调用了基构造函数。代码被调用并执行。证明是,在我的stotryboard_completed方法中,我检查对象的X和Y位置,当它达到某些特定值时,我将对象从屏幕上移除,这是正确的。没有发生的是实际的运动。对象不会在屏幕上移动。故事板发生了,完成了更新CompositeTransform的工作,但对象保持静止。。。
public child():base() { ... }