Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //-----------------------------------------------------------------------------
- // Ejemplo de toast notifications (18/Ene/13)
- //
- // El artículo en mi blog:
- // http://www.elguillemola.com/index.php/2013/01/ejemplo-sencillo-de-notificaciones-toast-para-windows-store/
- //
- // ©Guillermo 'guille' Som, 2013
- //-----------------------------------------------------------------------------
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using Windows.Foundation;
- using Windows.Foundation.Collections;
- using Windows.UI.Xaml;
- using Windows.UI.Xaml.Controls;
- using Windows.UI.Xaml.Controls.Primitives;
- using Windows.UI.Xaml.Data;
- using Windows.UI.Xaml.Input;
- using Windows.UI.Xaml.Media;
- using Windows.UI.Xaml.Navigation;
- using Windows.UI.Notifications;
- using Windows.Data.Xml.Dom;
- // The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238
- namespace Toast_notifications_CS
- {
- /// <summary>
- /// An empty page that can be used on its own or navigated to within a Frame.
- /// </summary>
- public sealed partial class MainPage : Page
- {
- public MainPage()
- {
- this.InitializeComponent();
- }
- /// <summary>
- /// Invoked when this page is about to be displayed in a Frame.
- /// </summary>
- /// <param name="e">Event data that describes how this page was reached. The Parameter
- /// property is typically used to configure the page.</param>
- protected override void OnNavigatedTo(NavigationEventArgs e)
- {
- }
- private void ButtonPlay_Click(object sender, RoutedEventArgs e)
- {
- // La plantilla a usar, esta Text03 es:
- // un texto de cabecera que puede ocupar dos líneas y una línea de texto normal
- ToastTemplateType toastTemplate = ToastTemplateType.ToastText03;
- // Asignamos el template a un documento Xml
- XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate);
- // El texto para el primer elemento de la pantilla
- XmlNodeList toastTextElements = toastXml.GetElementsByTagName("text");
- toastTextElements[0].AppendChild(toastXml.CreateTextNode("Cargando ..."));
- // Si queremos que la duración sea larga
- // Puede ser corta o larga, corta es la predeterminada
- IXmlNode toastNode = toastXml.SelectSingleNode("/toast");
- ((XmlElement)toastNode).SetAttribute("duration", "long");
- // Si queremos quitar el sonido
- // (o indicar alguno en particular)
- // tenemos que usar el elemento "audio"
- // IXmlNode toastNode = toastXml.SelectSingleNode("/toast");
- XmlElement audio = toastXml.CreateElement("audio");
- audio.SetAttribute("silent", "true");
- toastNode.AppendChild(audio);
- ToastNotification toast = new ToastNotification(toastXml);
- ToastNotificationManager.CreateToastNotifier().Show(toast);
- }
- private void ButtonClock_Click(object sender, RoutedEventArgs e)
- {
- // La plantilla a usar, esta Text03 es:
- // un texto de cabecera que puede ocupar dos líneas y una línea de texto normal
- ToastTemplateType toastTemplate = ToastTemplateType.ToastText03;
- // Asignamos el template a un documento Xml
- XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate);
- // El texto para el primer elemento de la pantilla
- XmlNodeList toastTextElements = toastXml.GetElementsByTagName("text");
- toastTextElements[0].AppendChild(
- toastXml.CreateTextNode("A los 3 segundos después de haber pulsado en el botón."));
- toastTextElements[1].AppendChild(
- toastXml.CreateTextNode("Segundo texto."));
- // Esto es para indicar que esta notificación se hará en el momento indicado
- DateTime dueTime = DateTime.Now.AddSeconds(3);
- ScheduledToastNotification scheduledToast = new ScheduledToastNotification(toastXml, dueTime);
- ToastNotificationManager.CreateToastNotifier().AddToSchedule(scheduledToast);
- }
- private void ButtonHelp_Click(object sender, RoutedEventArgs e)
- {
- // La plantilla a usar, esta Text02 es:
- // un texto de cabecera y un texto normal que puede ocupar dos líneas
- ToastTemplateType toastTemplate = ToastTemplateType.ToastText02;
- // Asignamos el template a un documento Xml
- XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate);
- // El texto para el primero elemento de la pantilla
- XmlNodeList toastTextElements = toastXml.GetElementsByTagName("text");
- toastTextElements[0].AppendChild(
- toastXml.CreateTextNode("Esto se mostrará durante más tiempo ..."));
- toastTextElements[1].AppendChild(
- toastXml.CreateTextNode("Siempre puedes cerrar las notificaciones en la X superior."));
- // Si queremos que la duración sea larga
- // Puede ser corta o larga, corta es la predeterminada
- IXmlNode toastNode = toastXml.SelectSingleNode("/toast");
- (toastNode as XmlElement).SetAttribute("duration", "long");
- // Esto es para indicar que esta notificación se hará en el momento indicado
- DateTime dueTime = DateTime.Now.AddSeconds(10);
- ScheduledToastNotification scheduledToast = new ScheduledToastNotification(toastXml, dueTime);
- ToastNotificationManager.CreateToastNotifier().AddToSchedule(scheduledToast);
- ToastNotification toast = new ToastNotification(toastXml);
- ToastNotificationManager.CreateToastNotifier().Show(toast);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement