ApplicationBar не работает после навигации Windows 8 - PullRequest
1 голос
/ 17 февраля 2012

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

  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 , он отобразится, но не закрылся.
В чем проблема?

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

1 Ответ

1 голос
/ 18 февраля 2012

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

...