Сделайте что-нибудь, если на DispatcherTimer осталось определенное время - PullRequest
0 голосов
/ 11 июня 2018

В настоящее время я работаю над проектом UWP и мне нужна помощь с моим DispatcherTimer.

. Я работаю с функцией бронирования и хочу изменить цвет, если естьОсталось 15 секунд до отметки DispatcherTimer.

У меня есть две переменные с именами timefrom и timeTo, и они взяты из базы данных SQL.Поэтому я хочу сначала изменить цвет с Green на Red, а затем оставаться Red до тех пор, пока не останется 15 секунд до timeto = DateTime.UtcNow

"timefrom": "2018-02-17T14:00:00"
"timeto": "2018-02-17T15:15:00"

Что сейчасЯ пытался с этим:

if (timeto < DateTime.UtcNow)
{
    StatusColor.Fill = GreenBrush;
}
else if (timeto > DateTime.UtcNow)
{
    GreenToRed();
}

Это мой DispatcherTimer:

public void GreenToRed()
        {
            DispatcherTimer ColorTimer = new DispatcherTimer();
            ColorTimer.Interval = TimeSpan.FromSeconds(3);
            ColorTimer.Tick += async (Sender, args) =>
            {
                await StatusColor.Fade(duration: 1000, delay: 0, value: 0).StartAsync();
                StatusColor.Fill = RedBrush;
                await StatusColor.Fade(duration: 1200, delay: 0, value: 1).StartAsync();
                RedToYellow();
                ColorTimer.Stop();
            };
            ColorTimer.Start();
        }
  • StatusColor это прямоугольник, который содержит цвет в качестве заливки.
  • GreenBrush, RedBrush и YellowBrush - это три цвета, между которыми я хочу переключиться.

Заранее спасибо!

...