[Windows Phone 7.5] Personalizando la System Tray.

En Windows Phone 7.0 la system tray solo nos permitía especificar su visibilidad, esto es, si queríamos mostrar o no las indicaciones de batería, hora, cobertura, etc… personalmente siempre me ha gustado la opción de poder ver esta información, sobretodo si voy a estar mucho tiempo usando una aplicación.

image

El mayor problema aparecía en el hecho de que el background / foreground era el dictado por el sistema y no existía forma de personalizarlo, como podemos ver en la imágen anterior, donde parece que nuestra aplicación ha “perdido” un poco de pantalla. ¿Como aprovechar ese espacio mientras ofrecemos a nuestros usuarios la información standard del dispositivo? En Windows Phone 7.5 ya podemos hacerlo pues tenemos acceso al objeto SystemTray, que podemos encontrar en el namespace Microsoft.Phone.Shell. En este objeto disponemos de varias propiedades, entre ellas, el color de fondo y de letra a usar. Podemos establecerlo directamente en XAML:

shell:SystemTray.IsVisible="True"
shell:SystemTray.BackgroundColor="#FFAAFFAA"
shell:SystemTray.ForegroundColor="DarkGreen"

image

O también podemos realizarlo mediante código, por ejemplo al pulsar sobre el botón cambiar color:

private void Button_Click(object sender, RoutedEventArgs e)
{
    SystemTray.BackgroundColor = Color.FromArgb(255, 160, 255, 160);
    SystemTray.ForegroundColor = Colors.Green;
}

De esta forma hemos podido unificar el aspecto de la system tray con nuestra aplicación, evitando la sensación de perdida de espacio. Además de integrar la system tray visualmente en nuestra aplicación, también podemos darle un uso real, por ejemplo, usando este espacio para mostrar nuestros indicadores de progreso en operaciones largas, en vez de incluirlos en otras partes de la pantalla. Para esto disponemos de la propiedad ProgressIndicator:

private void btnProgress_Click(object sender, RoutedEventArgs e)
{
    SystemTray.ProgressIndicator = new ProgressIndicator() {  IsIndeterminate = true, IsVisible = true };
}

image

De esta forma podemos mostrar nuestras barras de carga directamente en el system tray, al igual que se hace en otras partes del sistema y aprovechando este espacio, antes sin uso.

[TIP] Degradados

Antes de terminar, os dejo un pequeño truco. Si os fijáis en las pantallas de ejemplo, estoy usando un degradado entre dos colores y se muestra totalmente fluido. Originalmente existían problemas con estos fondos, pues Windows Phone solo usaba 16bits para dibujarlos y aparecían unas líneas de degradado horribles. En Windows Phone 7.5 podemos cambiar el comportamiento de nuestra aplicación para que solicite el uso de 32bits por pixel de color. Para ello debemos editar el archivo WMAppManifest.xml y añadir la opción BitsPerPixel establecida a 32:

<App xmlns="" BitsPerPixel="32" ProductID="{79042c1e-48c6-40f5-86a2-0555eed38582}" 

De esta forma disfrutaremos de 32bits de color en nuestra aplicación.

Para terminar os dejo el código fuente de ejemplo para que lo descarguéis

Un saludo y Happy Coding!

Un comentario sobre “[Windows Phone 7.5] Personalizando la System Tray.”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *