2014-01-15 2 views
1

Я разрабатываю экран входа, в котором пользователь должен ввести свои данные, а затем отправить их.Клавиатура перекрывает всплывающее окно в wp8

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

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

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

+0

ну, если вы используете страницу, вы можете удалить Back Entry из навигационных служб. Вы хотите отображать только страницу входа? –

+0

Идеальная ситуация была бы следующей: у меня есть страница входа в начале, а затем после входа в систему она перейдет к MainPage. И один раз в MainPage, когда пользователь нажимает клавишу «Назад», приложение закрывается, не переходя на страницу входа. – programmer23

+0

Я вижу, позвольте мне показать вам мою идею –

ответ

1

В WMAppManifest.xml удалить свойство из Navigation Page и в вас App.xaml.cs у вас есть что-то вроде:

private void Application_Launching(object sender, LaunchingEventArgs e) 
     { 
      LoadDefautPage(); 
     } 

void LoadDefautPage() 
     { 
     if (StartForFirstTime)//tombstone local variable 
      { 
       if (!IsLoggedIn)//flag save it in IsolatedStorageSettings 
       { 
        RootFrame.Navigate(new Uri("/LoginPage.xaml", UriKind.Relative)); 
       } 
       else 
       { 
        RootFrame.Navigate(new Uri("/MainPage.xaml", UriKind.Relative)); 
       } 
       StartForFirstTime = false; 
      } 
     } 

окончательно удалить Назад запись в MainPage:

protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e) 
     {  
      while (this.NavigationService.CanGoBack) 
      { 
       this.NavigationService.RemoveBackEntry(); 
      } 
     } 

Это просто идея, дайте мне знать, как (

+1

Большое спасибо. Ваше решение решило мою проблему :). – programmer23

Смежные вопросы