Есть ли способ, чтобы мои страницы не мигали, когда я к ним переходил? - PullRequest
0 голосов
/ 19 апреля 2019

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

This is a .gif file of to show what happens when I try to navigate to the Map Page.

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

Код C # главной страницы:

 public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
        }

        private void NavView_Loaded(object sender, RoutedEventArgs e)
        {
           foreach (NavigationViewItemBase item in NavView.MenuItems)
            {
                if (item is NavigationViewItem && item.Tag.ToString() == "Home")
                {
                    NavView.SelectedItem = item;
                    break;
                }
            }
        }


        private void NavView_ItemInvoked(NavigationView sender, NavigationViewItemInvokedEventArgs args)
        {
            if (args.IsSettingsInvoked)
            {
                Frame.Navigate(typeof(SettingsPage));
            }
            else
            {
                switch (args.InvokedItem)
                {
                    case "Home":
                        Frame.Navigate(typeof(MainPage));
                        break;

                    case "Attractions":
                        Frame.Navigate(typeof(AttractionsPage));
                        break;

                    case "Places to Eat":
                        Frame.Navigate(typeof(PlacestoEatPage));
                        break;

                    case "Map":
                        Frame.Navigate(typeof(BlankPage1));
                        break;

                    case "Photos":
                        Frame.Navigate(typeof(Photos_Page));
                        break;

                    case "News":
                        Frame.Navigate(typeof(NewsFeedPage));
                        break;

                    case "Weather":
                        Frame.Navigate(typeof(WeatherPage));
                        break;


                }


            }
        }

        private void NavView_SelectionChanged(NavigationView sender, NavigationViewSelectionChangedEventArgs args)
        {
            if (args.IsSettingsSelected)
            {
                Frame.Navigate(typeof(SettingsPage));
            }
            else
            {
                NavigationViewItem item = args.SelectedItem as NavigationViewItem;
                switch (item.Tag)
                {
                    case "home":
                        Frame.Navigate(typeof(MainPage));
                        break;

                    case "attractions":
                        Frame.Navigate(typeof(AttractionsPage));
                        break;

                    case "placestoEat":
                        Frame.Navigate(typeof(PlacestoEatPage));
                        break;

                    case "map":
                        Frame.Navigate(typeof(BlankPage1));
                        break;

                    case "photos":
                        Frame.Navigate(typeof(Photos_Page));
                        break;

                    case "news":
                        Frame.Navigate(typeof(NewsFeedPage));
                        break;

                    case "weather":
                        Frame.Navigate(typeof(WeatherPage));
                        break;

                }
            }
        }

        private void Page_Loaded(object sender, RoutedEventArgs e)
        {

        }

    }
 }

Это код MapPage C # с только кодом вида навигации (если мне нужно поместить остальное, то есть просто код маркеров для определенных мест на карте и различных стилей карты, дайте мне знать):

private void NavView_ItemInvoked(NavigationView sender, NavigationViewItemInvokedEventArgs args)
        {
            if (args.IsSettingsInvoked)
            {
                Frame.Navigate(typeof(SettingsPage));
            }
            else
            {
                switch (args.InvokedItem)
                {
                    case "Home":
                        Frame.Navigate(typeof(MainPage));
                        break;

                    case "Attractions":
                        Frame.Navigate(typeof(AttractionsPage));
                        break;

                    case "Places to Eat":
                        Frame.Navigate(typeof(PlacestoEatPage));
                        break;

                    case "Map":
                        Frame.Navigate(typeof(BlankPage1));
                        break;

                    case "Photos":
                        Frame.Navigate(typeof(Photos_Page));
                        break;

                    case "News":
                        Frame.Navigate(typeof(NewsFeedPage));
                        break;

                    case "Weather":
                        Frame.Navigate(typeof(WeatherPage));
                        break;
                }

            }
        }

        private void NavView_SelectionChanged(NavigationView sender, NavigationViewSelectionChangedEventArgs args)
        {
            if (args.IsSettingsSelected)
            {
                Frame.Navigate(typeof(SettingsPage));
            }
            else
            {
                NavigationViewItem item = args.SelectedItem as NavigationViewItem;
                switch (item.Tag)
                {
                    case "home":
                        Frame.Navigate(typeof(MainPage));
                        break;

                    case "attractions":
                        Frame.Navigate(typeof(AttractionsPage));
                        break;

                    case "placestoEat":
                        Frame.Navigate(typeof(PlacestoEatPage));
                        break;

                    case "map":
                        Frame.Navigate(typeof(BlankPage1));
                        break;

                    case "photos":
                        Frame.Navigate(typeof(Photos_Page));
                        break;

                    case "news":
                        Frame.Navigate(typeof(NewsFeedPage));
                        break;

                    case "weather":
                        Frame.Navigate(typeof(WeatherPage));
                        break;
                }
            }
        }

1 Ответ

0 голосов
/ 21 апреля 2019

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

Спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...