Применить функцию замедления к анимации за кодом - PullRequest
4 голосов
/ 02 июля 2011

Мне удалось построить свою раскадровку за кодом.Я не знаю, как добавить функции замедления, хотя.Я ищу что-то вроде:

DoubleAnimation FadelnTBAnimation = new DoubleAnimation();
FadelnTBAnimation.To = 0;
FadelnTBAnimation.BeginTime = TimeSpan.FromSeconds(0);
FadelnTBAnimation.Duration = new Duration(TimeSpan.FromSeconds(1));
FadelnTBAnimation.EasingFunction = EasingMode.EaseInOut; // this line gives an error

Как я могу применить функции замедления с помощью c #?

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

Ответы [ 4 ]

5 голосов
/ 02 июля 2011

Вам необходимо создать экземпляр IEasingFunction (http://msdn.microsoft.com/en-us/library/system.windows.media.animation.ieasingfunction.aspx).). В нижней части этой записи документации есть список классов реализации, наиболее распространенным из которых, вероятно, является CubicEase или QuadraticEase.

4 голосов
/ 05 декабря 2013

Существует разница между функцией замедления и режимом ослабления.

Вот краткий пример для Win-8 (не WPF):

SineEase easingFunction = new SineEase();
easingFunction.EasingMode = EasingMode.EaseIn;
animation.EasingFunction = easingFunction;
1 голос
/ 09 июня 2017

Простой способ добавить функцию замедления в вашем случае - просто добавить ее к двойной анимации.

FadelnTBAnimation.EasingFunction = new QuarticEase(); // for example
0 голосов
/ 02 июля 2011

Я создал функцию замедления в xaml как ресурс, а затем с помощью кода нашел этот ресурс. Здесь является примером:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...