Я разрабатываю приложение в WPF и .Net 4, которое содержит анимации.Неявно отключить анимацию в WPF
Мои элементы управления связаны с определенными значениями в бизнес-логике, которая переключает анимацию при определенных условиях. Проблема, с которой я сталкиваюсь, заключается в том, что эти анимации могут воспроизводиться сразу после запуска приложения, что делает элементы управления «анимированными» к их начальному состоянию при первом отображении.
Скажем, например, что я разрабатываю часть входа в приложение. У меня есть элемент управления, который представляет собой настраиваемое всплывающее окно, которое должно появляться над полями имени пользователя и пароля, если они недействительны. Когда приложение запускается, оба этих поля по умолчанию недействительны, что побуждает всплывающие окна отображаться через анимацию. Я бы хотел, чтобы эти анимации не играли при запуске, не отключая их явно.
Еще один пример демонстрации моей проблемы - это кнопка переключения, привязанная к логическому свойству. Если я сохранил состояние кнопки, которое было переключено до закрытия приложения, кнопка будет «анимировать» по отношению к переключенному состоянию, когда приложение запустится (так как у меня есть анимация между перегруженными состояниями) вместо того, чтобы просто переключаться на без анимации.
Есть ли способ временно отключить все анимации от игры?
Я где-то читал, что лучший способ отключить анимацию - вызвать SkipToFill (...) на конкретной раскадровке. Проблема в том, что я должен явно отключить все связанные анимации, что может быть проблемой, если они не известны заранее.
Storyboard theBoard = (Storyboard)FindResource(resourceName);
theBoard.Begin(this, true);
theBoard.SkipToFill(this);
Как бы вы могли отключить анимацию без явного отключения их по одному? Возможно ли такое?
Проблема не в вашем взгляде, но логика, которая запускает представление, отображающее имя пользователя и пароль, является недопустимой. Когда вы проверяете, действительны ли они? –
У меня есть два булевых свойства, UsernameIsValid и PasswordIsValid, для которых по умолчанию используется false. Поле допустимо в том случае, если оно не пустое и в случае имени пользователя не содержит специального символа. Эти условия проверяются, когда пользователь вводит данные в обоих полях. Когда оба значения действительны, кнопка «Логин» включена. Я понимаю вашу точку зрения, и я подумал о том, чтобы пометить их как действительные при запуске, но я бы предпочел не «взломать» систему. –
@ Hussein Khalil Я считаю, что один из параметров метаданных UI DP - Animatable, поэтому, предположительно, вы можете попробовать установить его в false, это поможет? –