0

私のWindowsPhoneアプリには、UserControlから継承する親クラスファイルと、そのクラスから継承する複数のオブジェクトがあります。したがって、親クラスであるParent.csは部分的ではありません。サブクラスは、xamlファイルとcsファイルを持つxamlオブジェクトです。

私はすべての子供たちの動きを可能にしたいので、親クラスでこれを達成しようとしています。

これが私のコードです:

    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

さて、私自身のエラーが発生しました。RenderTransformをサブクラスの他の変換に置き換えていました。TransformGroupを使い始めたばかりで、すべて正常に機能します。

ご協力いただきありがとうございます

于 2013-01-04T14:34:34.523 に答える
0

コメントで述べたように、移動を行うコードが親のコンストラクターから呼び出される場合は、子のコンストラクターで親のコンストラクターを呼び出す必要があります。自動ではないため、コードが子に対して呼び出されることはありません。

親のコンストラクターを呼び出す最も簡単な方法は、base()を追加することです。

public child():base() { ... }
于 2013-01-04T10:40:53.087 に答える