2016-07-23 3 views
2

Мне нужно изменить текст и цвет кнопки во время события Click, но всего на несколько секунд, тогда должны появиться старые значения текста и цвета ,Изменение цвета и текста кнопки в течение определенного периода времени

Как это может работать? Может быть, с задачей async, которая возвращает значения после истечения времени?

Проблема: я узнал, что цвет и текст будут обновляться только после завершения метода события клика.

+0

Посмотрите раскадровку – Paparazzi

ответ

3

В настоящее время я много разбираюсь в асинхронном режиме и жду и в настоящее время несколько зависим от него. Поэтому я не мог помешать ответить на этот вопрос.

Заканчивать небольшой образец ниже:

XAML Код:

<Grid > 
    <Button x:Name="Button1" Content="Click Me" Width="88" Height="44" Click="Button1_Click"/> 
</Grid> 

кодекса За:

private async void Button1_Click(object sender, RoutedEventArgs e) 
{ 
    Button1.Background = Brushes.Red; 
    Button1.Content = "Clicked State"; 
    await Task.Delay(8000); 
    Button1.Background = Brushes.Transparent; 
    Button1.Content = "Click Me"; 
} 

Теперь позвольте мне объяснить, что происходит ее e:

  1. Когда кнопка нажата, она войдет в обработчик событий, нажав кнопку асинхронного вызова Button1_Click.

  2. Цвет кнопки изменяется на красный, а контент изменен на «Состояние кликов».

  3. Теперь мы можем вызвать ожидание Task.Delay (8000), то есть выполнение функции теперь ожидает завершения задачи, которая задерживается на 8 секунд. Выполнение возвращается к основному потоку пользовательского интерфейса, и ваш пользовательский интерфейс все еще реагирует.

  4. По истечении 8 секунд бесплатная нить из пула потоков снова начнет выполнять оставшуюся часть метода после ожидания.

  5. Кнопка изменена на цвет фона по умолчанию, а содержимое изменено на «Click Me», который был содержимым по умолчанию.

Надеется, что это помогает.

+0

Это на самом деле то, что я искал! Благодарю. – student96

+0

С удовольствием помогите :) – ViVi