Если вам действительно нужно, чтобы кнопка была связана с анимацией, то я, вероятно, создал бы TriggerAction (System.Windows.Interactivity.TriggerAction) и прикрепил бы ее к кнопке.Затем действие отключило бы кнопку, запустило анимацию и прослушало событие анимации «Завершено» перед повторным включением кнопки.
IMHO MVVM не подходит в этом сценарии, так как все взаимодействия связаны с просмотром, и нетдействительно хороший способ сообщить вашей ViewModel, что анимация анимации.Более того, фактическое время анимации не является детерминированным, поэтому может иметь и другие последствия, если вы предполагаете фиксированное время.
Возможно, вы захотите взглянуть на настройку HandOffBehavior вашей анимации.В зависимости от того, какую анимацию вы на самом деле делаете, может не быть реального штрафа, если пользователь будет нажимать кнопку несколько раз.Если есть, воспользуйтесь предложенным выше предложением и отключите кнопку.