2012-02-09 9 views
1

私は、2つのビジュアル状態を持つカスタムWPFコントロールを持っています - Enabled &無効です。無効状態には、制御を無効にした後、少し遅れて消える単純な遷移アニメーションがあります。次に、私はアニメーションの逆を持って、コントロール内でフェードインし、Enabled状態に移行するときに(遅延なしで)再び有効にします。wpf視覚状態遷移を反転する

私が持っている問題は、状態を無効にしてから再び有効にしてからフェードアウトを開始する前に、フェードインアニメーションを待たなければならないということです。実際には、コントロールをただちに有効にし、フェードイン部分を避けることができます。

これを修正する正しい方法はありますか?無効化されたトランジション・ストーリーボードの現在の時間(マイナス初期遅延)に基づいて、「使用可能」トランジション・ストーリーボードの開始点を設定する必要があります。

別のやり方では、2つの州に障害者と1つは退屈だと言います。無効状態のアニメーションが完了したら、ストーリーボードからビジュアル状態を変更することができた場合は、無効なストーリーボードが完了した後、退色状態に入ることができます。それから、私は、DisabledからEnabledへ、FadedからEnabledへと異なる遷移を定義することができます。

これは可能ですか?

ありがとうございます!

答えて

0

アニメーションを有効にしたり無効にしたりするには、開始値と終了値の両方が定義されていると正しく推定されますか?それはあなたが描く行動を説明するものです。

[開始]値のみを指定しない場合、指定されたプロパティはその時点の値(つまり、半減した値)から指定した値にアニメーション化されます。これは、指定した[開始]値に値をポップし、[終了]値にアニメートする代わりに使用します。

+0

私のストーリーボードには、無効状態から有効状態に移行するための手順がいくつかあります。しかし、あなたのところでは、単純なアニメーション、例えば不透明度を変更するだけで、Fromプロパティを設定しないことで、必要な振る舞いに_close_を得ることができます。しかし、まだ不利な点があります。アニメーションは、0または50%の不透明度から開始するかどうかにかかわらず、できるだけ長くかかります。これは、フェードバックが遅く見えることを意味し、遅延は迷惑になります。 – Mark

+0

フェードインが通常の期間の半分しか実行できなかった場合、フェードバックを半分にするようにしています。 はい、あなたが不思議に思っている場合には、私は完璧主義者です。 – Mark

+0

は、アニメーションの移動距離に基づいてSpeedRatioプロパティを設定する必要があるように聞こえます。 – dtm

関連する問題