ApplicationBar не работает после навигации Windows 8

Я разрабатываю простое приложение для Windows 8.
У меня есть два элемента управления UserControl: Locations и LocationsMap.
Я пытаюсь перемещаться между ними. Для этого я добавил статические методы в App. они такие

  public static void ShowLocationsMap()
  {
      var page = new LocationsMap();
      Window.Current.Content = page;
  }

Навигация работает нормально. Но существует проблема. Я вызываю этот метод с помощью кнопки в ApplicationBar. XAML выглядит так

<ApplicationBar x:Name="BottomAppBar"  Height="88" VerticalAlignment="Bottom" Style="{StaticResource AppBarStyle}" Grid.Row="1">
        <StackPanel Orientation="Horizontal">
            <!-- Margin="left,top,right,bottom" -->
            <StackPanel Orientation="Vertical" Margin="5,14,5,14">
                <Button Content="Map" Click="MapButton_Click"></Button>
            </StackPanel>
        </StackPanel>
    </ApplicationBar>

И я возвращаюсь назад, вызывая другую функцию со следующей страницы.
Проблема в том, что когда я возвращаюсь назад, ApplicationBar перестает работать. Он не отображается после щелчка правой кнопкой мыши. Если я установлю для BottomAppBar.IsOpen значение true, оно появится, но не закроется.
В чем проблема?

P.S.
ApplicationBar также не работает в случае, когда я перехожу на другую страницу с помощью кнопки на элементах управления XAML, поэтому проблема не в кнопке внутри AppBar.


person Samvel Siradeghyan    schedule 16.02.2012    source источник


Ответы (1)


Для навигации я использовал образец кода, загруженный из Интернета. Этот код использовал статические функции, определенные в классе App, которые изменяли Window.Current.Content.
Это была плохая идея. Вместо этого мне просто нужно использовать навигацию по кадрам.
При его использовании нам нужно изменить тип наших элементов управления из UserControl на страницу.
Панель приложений теперь отлично работает с навигацией.
Надеюсь, это кому-нибудь поможет.

person Samvel Siradeghyan    schedule 18.02.2012