Featured Posts

Anunciando: Taller de Silverlight 4Anunciando: Taller de Silverlight 4 Antes que otra cosa, quiero agradecer a todos y todas quienes me ayudaron a contestar la encuesta que preparé en días pasados.  Recibí más de 250 respuestas de personas...

Readmore

Silverlight Tour–Guadalajara (08 al 10 de Septiembre... El interés y difusión de Silverlight como plataforma de desarrollo está siendo cada vez más grande y muchas empresas están optando por esta tecnología para construir...

Readmore

Curso gratuito de Introducción a Silverlight 4 – 2da. ParteCurso gratuito de Introducción a Silverlight... Tengo el gusto de informarles que ya está disponible la segunda parte del Curso gratuito de Introducción a Silverlight 4 en Español, el cual ahora consta de un total...

Readmore

Silverlight Tour en Español – Ahora con controles de Telerik!Silverlight Tour en Español – Ahora con... Tengo el gusto de informar que tal como sucede con el Silverlight Tour en USA y Canadá, ahora también el Silverlight Tour en Español en asociación con Telerik incluye...

Readmore

Rodrigo Díaz Concha Rss

Silverlight 4 Beta – Notificaciones

Posted on : 01-12-2009 | By : Rodrigo | In : Silverlight 4

Tags: , , ,

2

Silverlight 4 incorpora un mecanismo para notificar al usuario acerca de algún suceso ocurrido similar a cuando llega un nuevo correo en Outlook y que aparece la notificación en la esquina inferior derecha de nuestra pantalla.   En este artículo veremos a detalle esta nueva API de Notificaciones y cómo implementarla en nuestras aplicaciones.

El Proyecto

Crearemos un nuevo proyecto de Silverlight 4 en Visual Studio .NET 2010 Beta 2 y le pondremos el nombre Demo.SL4.Notificaciones, aceptando las opciones por default de crear un proyecto Web para poder probar la aplicación.  Además, configuraremos el proyecto de Silverlight para que la aplicación pueda ejecutar Fuera del Navegador.

Clase System.Windows.NotificationWindow

La clase NotificationWindow del espacio de nombres System.Windows es el punto de partida para crear notificaciones en nuestras aplicaciones.  El contenido de una notificación es establecida a través de la propiedad Content que es de tipo FrameworkElement, una de las clases principales en la jerarquía de clases de Silverlight y por tal motivo podemos establecer como contenido de la notificación cualquier elemento visual.

La característica de Notificaciones únicamente está disponible en Aplicaciones Fuera del Navegador (por lo menos en Silverlight 4 Beta)

Métodos Show() y Close()

Por otro lado, para mostrar una notificación ejecutamos el método Show(), el cuál recibe como parámetro un número expresado en milisegundos según el tiempo que desees que dure.  El siguiente código muestra la creación de una notificación, primero verificando que la aplicación esté ejecutando Fuera del Navegador:

if (Application.Current.IsRunningOutOfBrowser)
            {
                //Crea una nueva instancia de NotificationWindow
                NotificationWindow nw = new NotificationWindow();
                
                //Crea el contenido
                Grid grid = new Grid()
                {
                    Background = new SolidColorBrush(Colors.LightGray),
                    Width=400,
                    Height=100
                };
                TextBlock txt = new TextBlock()
                {   Text = DateTime.Now.ToString(),
                    HorizontalAlignment= System.Windows.HorizontalAlignment.Center,
                    VerticalAlignment= System.Windows.VerticalAlignment.Top,
                    FontSize=14
                };
                Button btn = new Button()
                {
                    Width = 100,
                    Height = 30,
                    Content = "Cerrar"
                };
                //Con el botón cerraremos la notificación
                btn.Click += (s, a) => nw.Close();

                grid.Children.Add(txt);
                grid.Children.Add(btn);

                //Establece el contenido
                nw.Content = grid;

                //Muestra la notificación durante 5 segundos
                nw.Show(5000);

            }

En el código estamos creando un Grid de color gris que nos servirá de contenedor para un TextBlock que mostrará la fecha y hora actual, y de un botón que nos servirá para cerrar la notificación en cuestión a través del método Close()

Nota: La documentación de Silverlight 4 Beta establece que los eventos que ocurren en el contexto de la notificación no se consideran como iniciados por el usuario, por lo que no podras ejecutar código que así lo requiera (OpenFileDialog, SaveFileDialog y usar el Portapapeles son un buen ejemplo de esto), no obstante, esto es posible.  No estoy seguro si esto cambie en la versión final de Silverlight 4.

El resultado:

image

Como podemos apreciar en la anterior figura, las notificaciones aparecerán en la esquina inferior derecha del monitor primario que tengas configurados, a una distancia de –44,-44 pixeles de distancia de la esquina; ese es el espacio vacío que se ve a la derecha y abajo de la notificación.

También podemos darnos cuenta que el área para la notificación no es más que un lienzo de 400 x 100 pixeles; y tu contenido no deberá rebasar este tamaño establecido de manera predeterminada.

Evento Closed

La clase NotificationWindow expone el evento Closed, el cual se dispara cuando cierras la notificación explícitamente usando el método Close() o cuando el tiempo en milisegundos especificado en el método Show() se ha cumplido.  En la aplicación de ejemplo que aquí desarrollamos manejamos el evento para mostrar en un ListBox que una notificación ha sido cerrada; además, las notificaciones se están creando cada 10 segundos.

Resultado

image

Puedes descargar el código aquí

Puedes ver la demo en vivo aquí (requiere Silverlight 4 y ejecutar la aplicación Fuera del Navegador)

  • Share/Bookmark

Comments (2)

[...] Ve el artículo completo aquí [...]

[...] This post was Twitted by Imixe [...]

Write a comment

Spam Protection by WP-SpamFree