Рамочная навигация UWP - PullRequest
       13

Рамочная навигация UWP

0 голосов
/ 23 апреля 2020

Эй, я хочу сделать что-то вроде слайд-шоу, где вы запускаете приложение, и оно просматривает страницы, но программа не загружается.

        public MainPage()
    {
        this.InitializeComponent();
        while (true)
        {
            this.contentFrame.Navigate(typeof(Page1));
            Thread.Sleep(10000);
            this.contentFrame.Navigate(typeof(werbungPage));
            Thread.Sleep(10000);
            this.contentFrame.Navigate(typeof(ChartZielPage));
            Thread.Sleep(10000);
            this.contentFrame.Navigate(typeof(mitarbeiteronlinePage));
            Thread.Sleep(10000);
            this.contentFrame.Navigate(typeof(MomentaneKundenPage));
            Thread.Sleep(10000);
            this.contentFrame.Navigate(typeof(OutlookKalenderPage));
            Thread.Sleep(10000);
            this.contentFrame.Navigate(typeof(ChartServerPage));
            Thread.Sleep(10000);
            this.contentFrame.Navigate(typeof(ChartWheaterPage));
            Thread.Sleep(10000);
        }
    }

1 Ответ

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

Эй, я хочу сделать что-то вроде слайд-шоу, где вы запускаете приложение и оно просматривает страницы, но программа не загружается.

Проблема в Thread.Sleep сделать тупик UI-потока, для вашего требования, мы рекомендуем использовать DispathcerTimer для обработки навигации по слайду.

private int index;
private List<Type> pages = new List<Type>() { typeof(TestPage), typeof(BlankPage), typeof(BlankPage) };
public MainPage()
{
    this.InitializeComponent();

    var timer = new DispatcherTimer();
    timer.Interval = TimeSpan.FromSeconds(2);
    timer.Tick += Timer_Tick;
    timer.Start();
}

private void Timer_Tick(object sender, object e)
{
    if (index == pages.Count)
    {
        index = 0;
    }
    this.contentFrame.Navigate(pages[index]);
    index++;    
}
...