На одной из страниц в моем приложении я должен показать всплывающее окно после того, как я покажу его, если пользователь нажмет кнопку «Назад», не удаляя всплывающее окно, тогда я должен сначала обработать это поле (может быть, удаление), а в следующем нажатии «Назад» я хочу перейти на предыдущую страницу. Это похоже на то, когда клавиатура открыта, первое нажатие назад свернет ее, а при втором нажатии страница перейдет на предыдущую страницу. Как я могу это сделать?
Я попытался обработать событие BackPressed на уровне страницы, но это не сработало. Код здесь
private void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e)
{
Frame frame = Window.Current.Content as Frame;
if(isOPen)
{
isOPen=false;
Storyboard2.Begin();
parda.Visibility = Visibility.Collapsed;
e.Handled = true;
}
else
{
frame.GoBack();
e.Handled = true;
}
}
IsOPen сохранить всплывающее окно состояния погоды в настоящее время открыто или нет.
Обновление:
Вот что я сделал. Как обычно, сначала приземлившись на главной странице, а затем перейдя на вторую страницу, на второй странице мне нужно открыть сетку с текстовыми полями для видимости всплывающих окон.
Код прост:
private void togglr_Checked(object sender, RoutedEventArgs e)
{
isOPen = true;
parda.Visibility = Visibility.Visible;
Storyboard1.Begin();
}
private void togglr_Unchecked(object sender, RoutedEventArgs e)
{
isOPen = flase;
parda.Visibility = Visibility.Collapsed;
Storyboard2.Begin();
}
Это оно.
2 ответа
В условии if я не вижу установки isOpen
на false
Таким образом, если вы никогда не попадете в блок else
Я пишу логику метода OnNavigatingFrom (путем переопределения), как это
protected override void OnNavigatingFrom(NavigatingCancelEventArgs e)
{
if(isOPen)
{
e.Cancel = true;
Storyboard2.Begin();
parda.Visibility = Visibility.Collapsed;
}
}
И теперь работает нормально.
Похожие вопросы
Новые вопросы
navigation
Навигация относится к процессу навигации по сети ресурсов и к пользовательскому интерфейсу, который используется для этого.