Como ocultar el StatusBar en Windows Phone 8.1


El otro día al estar desarrollando una aplicación de Windows Phone 8.1 quería esconder la barra de estado, pero para mi sorpresa no la encontré en XAML.
Y es que para los que venimos desde Windows Phone 7.0 hasta 8.0, esta se encuentra establecida mediante la Shell: SystemTray.IsVisible = “False” en cualquier página, pero esta no se encuentra disponible para Windows Phone 8.1.

Con el lanzamiento del nuevo SDK de Windows Phone 8.1 viene un nuevo StatusBar, el cual sustituye al SystemTray de Windows Phone basado en Silverlight, y a diferencia del SystemTray, el StatusBar solo se puede acceder a través de código, además de que su funcionalidad ha cambiado.

Al igual que el nuevo StatusBarProgressIndicator, solo se puede acceder a través de código con el método GetForCurrentView.

Tabla comparativa con respecto a funcionalidades:

SystemTray

StatusBar

Observaciones

System.Windows.Media.Color
ForegroundColor

Windows.UI.Color
ForegroundColor

 

System.Windows.Media.Color
BackgroundColor

Windows.UI.Color
Background

 

bool IsVisible

IAsyncAction HideAsync()
IAsyncAction ShowAsync()

Dos métodos reemplazan el único DependencyProperty

double Opacity

double BackgroundOpacity

No cambia el contenido cuando el valor es menor que 1

 

event Hiding

Nuevo

 

event Showing

Nuevo

La mayor diferencia en la tabla anterior no son los nuevos acontecimientos, no es el cambio de IsVisible a los nuevos métodos. La mayor diferencia es que el cambio es la funcionalidad en el establecimiento de la opacidad. En Windows Phone basado en Silverlight, cuando se establece la opacidad a un valor menor que 1, el contenido de la página se desplaza hacia arriba en el espacio de la bandeja. Ahora, cuando se establece la BackgroundOpacity el contenido de la página no se desplaza hacia arriba.

Veamos cómo funciona, empecemos creando un nuevo proyecto en blanco:

clip_image002

Si lo ejecutamos tal y como se encuentra, podremos ver que el StatusBar.

clip_image004

Ingresemos al CodeBehind de nuestro archivo MainPage.xaml

clip_image006

Agreguemos la siguiente directiva using:

using Windows.UI.ViewManagement;

Ahora creemos un método asíncrono, al cual pueden nombrar StatusBarChange o como gusten.

private async void StatusBarChange ()
{
}

Dentro de este declararemos una variable de tipo StatusBar y utilizaremos el método HideAsync:

StatusBar statusBar = Windows.UI.ViewManagement.StatusBar.GetForCurrentView();

await statusBar.HideAsync();

Por último solo mandémoslo llamar, esto situando la siguiente línea dentro de nuestro MainPage:

this.StatusBarChange();

Compilemos y veamos el resultado:

clip_image008

Ahora bien, si nuestro StatusBar se mostrara pero queremos ponerle un color, podemos manejar la propiedad BackgrounColor, pero para esto antes habrá que agregar la directiva: using Windows.UI;

statusBar.BackgroundOpacity = 1;

statusBar.BackgroundColor = Colors.Red;

Guardemos y compilemos:

clip_image010

Código completo:

clip_image012

Espero y les haya gustado este pequeño tutorial sobre una de las tantas nuevas características del nuevo SDK de Windows Phone 8.1

Y como siempre, aquí les dejo el ejemplo para su descarga:

clip_image014

Hasta la proximal!

Más información: Visually Located

Anuncios

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s