KeyFrames
を使用してGridLength
の値をアニメーション化できるクラスはありますか?私は、以下のサイトを見てきましたが、それらのどれもKeyFrames
ではなかった:キーフレームを使用したGridLengthアニメーション?
- http://windowsclient.net/learn/video.aspx?v=70654
- http://marlongrech.wordpress.com/2007/08/20/gridlength-animation/
何かアドバイスを?
KeyFrames
を使用してGridLength
の値をアニメーション化できるクラスはありますか?私は、以下のサイトを見てきましたが、それらのどれもKeyFrames
ではなかった:キーフレームを使用したGridLengthアニメーション?
何かアドバイスを?
添付されたビヘイビアを作成し、代わりにアニメーション化します。
確かに、GridLengthは明らかに数値型ではないため、アニメーション化する方法が明確ではありません。 double型の数値プロパティとして、グリッド幅を-inroduce再度ます
public class AnimatableProperties
{
public static readonly DependencyProperty WidthProperty =
DependencyProperty.RegisterAttached("Width",
typeof(double),
typeof(DependencyObject),
new PropertyMetadata(-1, (o, e) =>
{
AnimatableProperties.OnWidthChanged((Grid)o, (double)e.NewValue);
}));
public static void SetWidth(DependencyObject o,
double e)
{
o.SetValue(AnimatableProperties.WidthProperty, e);
}
public static double GetWidth(DependencyObject o)
{
return (double)o.GetValue(AnimatableProperties.WidthProperty);
}
private static void OnWidthChanged(DependencyObject target,
double e)
{
target.SetValue(Grid.WidthProperty, new GridLength(e));
}
}
:私のような添付の挙動を作成することができますcompnesateします。その場所を持っていると、自由にアニメートすることができます。
P.S.グリッドの幅をすでに2倍にしているので、明らかにそれはあまり意味がありません。他のGridLengthベースのプロパティは、上記のサンプルに従ってダブルラッパーでwrpappedし、そのラッパーを介してアニメーション化することができます。
もう少し説明できますか? – Hamed
[あなたが指しているビデオを含む]いくつかの回答があります:[WPFでは、誰かがグリッドをアニメーション化していますか?](http://stackoverflow.com/questions/197855/in-wpf-has-誰でもアニメーショングリッド) –