Pregunta

Estoy desarrollando una aplicación simple en Windows 8.
Tengo dos usertrols: Ubicación y Ubicación mapa.
Estoy tratando de navegar entre ellos. Para eso, he agregado a los métodos estáticos en la aplicación. Ellos son así

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

La navegación funciona bien. Pero hay un problema. Estoy llamando a este método desde el botón en ApplicationBar. Xaml se ve así

<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>

Y estoy navegando llamando a otra función desde la página siguiente.
El problema es que cuando navega de nuevo, ApplicationBar se detiene para funcionar. No se muestra después del clic derecho. Si me puse BottomAppBar.isopen a verdadero, Aparece, pero no se cerró.
¿Dónde está el problema?

PD
ApplicationBar no funciona tan bien en caso de que esté navegando a otra página desde el botón en los controles XAML, por lo que el problema no está en el botón dentro de AppBar.

¿Fue útil?

Solución

Para la navegación estaba usando el código de muestra descargado de Internet. Ese código estaba utilizando funciones estáticas definidas en la clase de aplicaciones, que estaban cambiando Ventana.current.content.
Esa fue una mala idea. En su lugar, si eso solo necesito usar Navegación de marco.
Al usarlo necesitamos cambiar el tipo de nuestros controles Desde UserControl hasta Page.
La barra de aplicación funciona muy bien con la navegación ahora.
Espero que esto ayude a alguien.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top