none
Schermata di benvenuto nell'app RRS feed

  • Domanda

  • Buongiorno,

    nella mia app ho creato una semplice schermata di benvenuto che si apre nella homepage al primo avvio.

    Ecco il codice usato:

     int appRunCount = 0;
            Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
            public HomePage()
            {
                ViewModel = new MainViewModel(12);            
                InitializeComponent();
                try
    
                {
                    appRunCount = (int)localSettings.Values["AppRunCount"];
                }
    
                catch { }
    
                appRunCount++;
    
                try
    
                {
                    localSettings.Values["AppRunCount"] = appRunCount;
                }
    
                catch { }
                NavigationCacheMode = NavigationCacheMode.Required;
    			commandBar.DataContext = ViewModel;
    			searchBox.SearchCommand = SearchCommand;
    			this.SizeChanged += OnSizeChanged;
            }		
            public MainViewModel ViewModel { get; set; }
    
            protected async override void OnNavigatedTo(NavigationEventArgs e)
            {
                await this.ViewModel.LoadDataAsync();
    			//Page cache requires set commandBar in code
    			ShellPage.Current.ShellControl.SetCommandBar(commandBar);
                ShellPage.Current.ShellControl.SelectItem("Home");
            }
    
    		private void OnSizeChanged(object sender, SizeChangedEventArgs e)
            {
                searchBox.SearchWidth = e.NewSize.Width > 640 ? 230 : 190;
            }
    
    		public ICommand SearchCommand
            {
                get
                {
                    return new RelayCommand<string>(text =>
                    {
                        searchBox.Reset();
                        ShellPage.Current.ShellControl.CloseLeftPane();                    
                        NavigationService.NavigateToPage("SearchPage", text, true);
                    },
                    SearchViewModel.CanSearch);
                }
            }
            private async void Page_Loaded(object sender, RoutedEventArgs e)
    
            {
                {
                    //ShowToast("Welcome to Wifi Vision");
                }
                if (appRunCount == 1)
                    welcome_grid.Visibility = Visibility.Visible; //MOSTRA LA SCHERMATA DI BENVENUTO
    
    
    
    
            
                }
            }
    
           
            //SCHERMATA DI BENVENUTO
            private void close_welcome_grid_btn_Click(object sender, RoutedEventArgs e)
            {
                welcome_grid.Visibility = Visibility.Collapsed;
            }
    
    
        }
    }
    
    
    

    Il problema è che, sempre durante la prima sessione dell'app, se l'utente dopo aver nascosto la schermata di benvenuto(welcome screen) torna alla homepage, questa torna visibile.

    Come faccio invece a renderla non visibile e salvare questo cambiamento nei local settings dell'app.

    Grazie

    domenica 22 gennaio 2017 12:55

Risposte

Tutte le risposte

  • Ciao Isabella, 

    Secondo me, una opzione semplice sarebbe un Check -

    If welcomescreen shown count = 1;

    disable;

    else

    Show;

    Sopra e solo l'idea. Farci sapere se una tale costruzione potresti implementare.


    • Microsoft offre questo servizio gratuitamente, per aiutare gli utenti e aumentare il database dei prodotti e delle tecnologie. Il contenuto fornito “as is“ non comporta alcuna responsabilità da parte dell’azienda.

    lunedì 23 gennaio 2017 09:21
    Moderatore
  • Ciao,

    il problema che hai è perché con NavigationCacheMode.Required la pagina non viene più ricreata ma viene richiamato il Page_Loaded.

    Prova a spostare la logica che hai messo nel costrutto in quell'evento ed in questo modo dovrebbe essere ricontrollato ogni volta prima di visualizzare la schermata di benvenuto

    Ciao

    Alessio

    lunedì 23 gennaio 2017 14:39
  • Ciao alessio grazie.

    Ho provato ad eliminare NavigationCacheMode.Required  e il problema direi che ho risolto.

    faccio comunque ulteriori accertamenti.

    Isabella

    martedì 24 gennaio 2017 20:47
  • Ciao,

    se ritieni il tuo problema richiesto poi segnalare il mio post come risposta in modo da chiudere il thread

    ciao

    Alessio

    martedì 24 gennaio 2017 22:10