У меня есть форма для входа с помощью кнопки (btnLogin). Когда пользователь нажимает btnLogin, следующий Storyboard
срабатывают для отключения btnLogin, txtUsername, pbPassword ...Обратный запуск анимации, если метод не работает с использованием Xaml, а не код
<EventTrigger RoutedEvent="Button.Click">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<BooleanAnimationUsingKeyFrames Storyboard.TargetProperty="IsEnabled" FillBehavior="HoldEnd">
<DiscreteBooleanKeyFrame KeyTime="00:00:00" Value="False" />
</BooleanAnimationUsingKeyFrames>
<BooleanAnimationUsingKeyFrames Storyboard.TargetName="txtUsername" Storyboard.TargetProperty="IsEnabled" FillBehavior="HoldEnd">
<DiscreteBooleanKeyFrame KeyTime="00:00:00" Value="False" />
</BooleanAnimationUsingKeyFrames>
<BooleanAnimationUsingKeyFrames Storyboard.TargetName="pbPassword" Storyboard.TargetProperty="IsEnabled" FillBehavior="HoldEnd">
<DiscreteBooleanKeyFrame KeyTime="00:00:00" Value="False" />
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
... как эти Storyboard
прогонов Button.Click
события также прилагаются к способу btnLogin_Click
который проверяет учетные данные пользователей. Справедливо!
В настоящее время, если попытка Логин не удается, я должен использовать следующий (грязный ?!) код btnLogin_Click
повторно включить btnLogin, txtUsername, pbPassword управления, так что детали могут быть повторно введены ...
btnLogin.Triggers.Clear();
btnLogin.BeginAnimation(UIElement.IsEnabledProperty, null);
txtUsername.BeginAnimation(UIElement.IsEnabledProperty, null);
pbPassword.BeginAnimation(UIElement.IsEnabledProperty, null);
Могу ли я обработать это повторное включение, используя Xaml вместо этого? Я уверен, что могу, я просто не могу понять, как это сделать ?!
Спасибо за вашу помощь: O)
UPDATE
Я попытался с помощью EnterActions
и ExitActions
как предложено bars222, но этот подход не имеет средств, чтобы определить, если btnLogin_Click
событие привели к успешному или неудачному входу в систему.
Также я считаю, что лучше использовать привязку данных для вас, но это требует кода. – bars222
Спасибо за ответ. К сожалению, этот метод вообще не отключает кнопку. Я думаю, что он, вероятно, отключается, а затем сразу же позволяет. Можете ли вы дать мне больше информации о решении для привязки данных, которое вы упомянули, пожалуйста? –
Для первого ответа я предположил, что форма авторизации будет отключена после успешного завершения процесса. Обновленный ответ с примером привязки данных. – bars222