昨日私は答えを得ることに失敗しましたが、おそらく私は正しい質問を定式化するのに十分な深さの問題を理解していませんでした。ストーリーボードアニメーションの不具合?
ストーリーはListBoxの高さをアニメーション化することです。ここでは、その後のスクリーンショットです:
a)の "ミディアム" のTextBlock
Bである) "中" のTextBlockはリストボックスに置き換えられます。ユーザが項目を選択する。 ListBox.Heightのアニメーションが開始されます。アニメーションが完了すると、ListBoxは元のTextBlockに置き換えられます。 (データの違いを無視してください。画像のコレクションは、私がレンダリングされたフレームで動作しなければならなかったpainfullプロセスであった。画像の一つが異なるレコードに対して撃たれました。)
このシーケンス時折ちらつきがある。私は何が起こっているのか知りたかったし、しばらくした後、私はこのスクリーンショットを得た:
何あなたが見ることStoryboard.Completedイベントがインターセプトされた後の最初のフレームです。これまでのところ、これはストーリーボードの最終結果です。
注:
私はこの瞬間にビジュアルツリーをチェックしsuspiceous何かを見つけることができませんでした。
これは、発生する効果の1つに過ぎません。別のケースでは、青いハッチングでリサイズされた1行のListBoxが頻繁に使用されます。この場合、リストボックスの上のすべての要素が消えます。第3の可能性は、画面全体にわたって斜めの赤線である。ここで
ストーリーボードを定義するコードです:
private Storyboard GetDropDownAnimation(double from, double to)
{
double secs = this.IsExpanded ? 0.2 : 0.4;
CubicEase ease = new CubicEase() { EasingMode = EasingMode.EaseInOut };
DoubleAnimation animation = new DoubleAnimation()
{
Duration = new Duration(TimeSpan.FromSeconds(secs)),
From = from,
To = to,
FillBehavior = FillBehavior.HoldEnd,
EasingFunction = ease
};
Debug.WriteLine("Animation Height {0} -> {1}", from, to);
Storyboard.SetTarget(animation, this);
Storyboard.SetTargetProperty(animation, new PropertyPath("Height"));
Storyboard sb = new Storyboard();
sb.Children.Add(animation);
return sb;
}
私が(長い間、私は問題があることを確信していた)行って、それは問題の懸念のように見える他のトリックを説明できますアニメーション自体のみ。
何が起こっているのか説明できますか?
あなたはこれらを意味すると思いますか? http://silverlight.codeplex.com/ –
@ClausJørgensen、はい、ありがとう!私の方法は古い。私はリンクを更新しました。 –
私は何が私の頭に来たのかをすべて調べました。 /からアニメーション値が出力をデバッグするために印刷された、私はビジュアルツリーなどをダンプした。間違った "from"値は観測された効果を説明できませんでした。 –