トップ回答者
Bottomのマージンだけをアニメーションさせたい

質問
-
はじめまして。
現在、ExpressionBlendでWPFアプリのレイアウトを作成しています。
XAMLでマージンを設定すると<Grid Margin="0,0,0,0"/>という感じで右、上、左、下のマージンが配列として設定されますよね。
このような設定でBottomのマージンだけをアニメーションさせようと思い、
ストーリーボードで、Value="0,0,0,30" としたところ、
Bottomのマージンはアニメーションしますが、他のマージンもアニメーションしてしまいます。
Bottomのマージン”だけ”をアニメーションさせたい場合、どのように書けばよいでしょうか?
回答
-
このページにコンストラクタで動的にストーリーボードを生成して実行するサンプルがあります。
ストーリーボードの概要-ストーリーボードを使用してアニメーションを適用する方法
http://msdn.microsoft.com/ja-jp/library/ms742868(VS.80).aspx
動的にストーリーボードを生成すれば現在値からBottom+30とかできます。
すべての返信
-
ExpressionBlend2.0ですが動作しています。
こんなコードになっていました。
Code Snippet<ThicknessAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="grid" Storyboard.TargetProperty="(FrameworkElement.Margin)">
<SplineThicknessKeyFrame KeyTime="00:00:03" Value="0,0,0,30"/>
</ThicknessAnimationUsingKeyFrames>ExpressionBlend1.0でも同じでした。
なお、「0,0,0,30」で0,0,0と指定しているため元の値じゃなくて0,0,0になってしまうって意味でしたらできないようです。
Storyboard.TargetPropertyは依存関係プロパティしかかけないようなので「FrameworkElement.Margin.Bottom」とは書けません。
-
このページにコンストラクタで動的にストーリーボードを生成して実行するサンプルがあります。
ストーリーボードの概要-ストーリーボードを使用してアニメーションを適用する方法
http://msdn.microsoft.com/ja-jp/library/ms742868(VS.80).aspx
動的にストーリーボードを生成すれば現在値からBottom+30とかできます。