2

私は C/C++ の経験しかなく、C# と WPF に移行したばかりです。コンポーネント (画像など) を動かすアニメーションを作成したいのですが、以下が違法である理由がわかりません。

ThicknessAnimation a = new ThicknessAnimation(...);

Image1.BeginAnimation(Image1.Margin, a); // illegal. Image.Margin illegal too

ここではマージンを使用できないようです。もちろん、タイマーを作成し、Margin の Thickness オブジェクトを手動で作成することもできますが、それは退屈であり、アニメーションが可能であれば、よりエレガントになります。

ここにストーリーボードは必要ですか? ストーリーボードを作ると Margin プロパティが使えるという話も聞いたことがありますが、私はストーリーボードのことを全く知らないので理解できません。ありがとう

4

1 に答える 1

3

通常のものではなく、依存関係プロパティをアニメーション化するので、代わりに Image.MarginProperty を試してください。

これらは、対象とする型または基本型内の静的フィールドです。

public static readonly DependencyProperty MarginProperty

あなたの場合、それは FrameworkElement で定義されています。

参考文献:

http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.marginproperty.aspx

http://msdn.microsoft.com/en-us/library/ms590761.aspx

より複雑なアニメーションの場合は、ストーリーボードが必要になります:

Storyboard オブジェクトを使用すると、さまざまなオブジェクトやプロパティに影響を与えるタイムラインを 1 つのタイムライン ツリーに結合できるため、複雑なタイミング動作を簡単に整理および制御できます。

http://msdn.microsoft.com/en-us/library/ms742868.aspx

編集 :

Intellisense を見ると、関連する依存関係プロパティが従来のプロパティの下にあることがわかります。

ここに画像の説明を入力

以前、Image.MarginProperty を使用する必要があると述べましたが、実際には「Image.」は無視できます。'this' のアニメーション化のように、オブジェクトが既にその基本型から継承している部分:

ここに画像の説明を入力

于 2013-06-14T04:07:52.507 に答える