Как перемещаться между двумя видами через три секунды в WPF C#? - PullRequest
0 голосов
/ 14 апреля 2020

Я сейчас работаю над проектом, и у меня есть изображение, которое я хочу показать в течение 3 секунд, а затем скрыть его до конца цикла и показать основную сетку.

Что я пытался сделать Для этого нужно поместить основную сетку во вспомогательную сетку с непрозрачностью 0 или Visibility = Visibility.Hidden и реализовать секундомер в коде метода publi c MainWindow () {}. Когда я попробовал оператор if: if (stopwatch.ElapsedMilliseconds> 3000) {Изменить непрозрачность}, я не достиг условия и сложился с первым окном. Когда я попробовал подход "время", просто добавив пустое время "l oop", ничего не было обнаружено в течение трех секунд, а затем я сразу вижу основную сетку.

Как я могу получить желаемый результат ?

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

public MainWindow()
        {
            InitializeComponent();

            ViewModel = (Application.Current as App).VM;
            DataContext = ViewModel;
            Dashboard.DataContext = ViewModel;

            this.Loaded += new RoutedEventHandler(MainWindow_Loaded);
            this.Loaded += new RoutedEventHandler(myMediaElement_MediaEnded);

            TimeGrinder();
            Page1.Opacity = 0;
            MainGrid.Opacity = 100;
        }

        public void TimeGrinder()
        {
            var stopWatch = new Stopwatch();
            stopWatch.Start();
            while (stopWatch.ElapsedMilliseconds < 3000) { }
            return;
        }

1 Ответ

1 голос
/ 14 апреля 2020

Может помочь:

using System.Threading;

...

private async void HideGrid()
{
    Page1.Opacity = 0;
    MainGrid.Opacity = 100;
    await Task.Delay(3000);
    //await Task.Run(() => Thread.Sleep(3000));
    Page1.Opacity = 100;
    MainGrid.Opacity = 0;
}

Отредактировано как @aepot предлагает

...