Вы можете использовать метод async
, который @Jeroen van Langen предложил в комментариях.
Использование await Task.Delay(time)
в промежутке между Background
изменениями задержит изменения на данный time
.
private async void Disco(object sender, RoutedEventArgs e)
{
Background = Brushes.Coral;
await Task.Delay(500); // 500 is just an example. You can use any number in milliseconds.
Background = Brushes.AliceBlue;
await Task.Delay(500);
Background = Brushes.DarkRed;
await Task.Delay(500);
Background = Brushes.Red;
await Task.Delay(500);
Background = Brushes.Blue;
await Task.Delay(500);
Background = Brushes.Aquamarine;
await Task.Delay(500);
//Set the background back to its original color here.
}
Если вам нужно, чтобы ваша форма продолжала «диско», например, до тех пор, пока кнопка не будет нажата снова, вы можете заключить ее в цикл while
, который будет продолжаться до тех пор, пока Button
не будетили нажмите ToggleButton
.
Если вы пойдете по этому пути, я предлагаю вам прочитать документацию по асинхронному программированию . Это очень полезно.