2012-02-09 5 views
1

У меня есть пользовательский элемент управления WPF с двумя визуальными состояниями - Включено & Отключено. В отключенном состоянии имеется простая анимация перехода, которая отключает элемент управления, а затем исчезает после небольшой задержки. Затем у меня есть обратная сторона анимации, где она исчезает в элементе управления и повторно включает ее (без задержки) при переходе в состояние Enabled.Обратное преобразование визуального состояния wpf

Проблема заключается в том, что если я изменил состояние с отключенного, а затем снова включился, чтобы снова включить его, прежде чем он начнет исчезать, мне все равно придется ждать анимации постепенного изменения, прежде чем он снова включит элемент управления, где на самом деле он мог бы сразу включить контроль сразу и избежать частичного затухания.

Каков правильный путь для исправления этого? Мне нужно установить начальную точку раскадровки перехода «Включено» на основе текущего времени в раскадровке «Отключено» (минус начальная задержка).

Другой способ, я думаю, состоит в том, чтобы иметь два состояния, говорящих, что «Отключено» и одно высказывание исчезло. Как только анимация состояния отключена, если можно было изменить визуальные состояния из раскадровки, я мог бы войти в состояние Faded после завершения завершившейся раскадровки. Тогда у меня могут быть разные переходы, определенные от Disabled to Enabled и Faded to Enabled.

Возможно ли это?

Спасибо!

ответ

0

для включения и отключения анимаций, правильно ли я предполагаю, что у вас установлены значения From и To? что будет объяснять поведение, которое вы описываете.

Если вы не указали значение «От», указав только значение «Кому», указанное свойство будет анимироваться из того, что его значение в это время (так, например, наполовину выцветшее), независимо от того, что вы укажете. это вместо того, чтобы вставлять значение в значение «От», которое вы указываете, а затем анимировать до значения «Кому».

+0

В моей раскадровке есть несколько шагов, чтобы перейти от отключенного к разрешенному состоянию. Но, на ваш взгляд, в простой анимации, например, просто изменяя непрозрачность, вы можете получить _close_ к поведению, которое мы хотим, не установив свойство From. Но есть еще недостаток - анимация занимает столько же времени, сколько и будет, независимо от того, начинается ли она с непрозрачности 0 или 50%. Это означает, что замирание кажется медленным, и задержка становится раздражающей. – Mark

+0

Я пытаюсь вернуть затухание на половину времени, если затухание разрешено выполнять только на половину обычной продолжительности. Да, в случае, если вам интересно, я перфекционист. – Mark

+0

звучит так, как вам нужно будет установить свойство SpeedRatio, исходя из того, как далеко должна пройти анимация. – dtm

Смежные вопросы