Crear notificación en Windows 10 (estilo del centro de control) con C#

Al leer más sobre las nuevas características de Windows 10 que son realmente interesantes, encontré un fragmento de código de cómo crear una notificación simple en la barra de herramientas en el escritorio.

El ejemplo es muy simple, una etiqueta mostrará el nombre de la acción llamada en un evento del brindis cuando se hace clic en un botón, el código fuente es el siguiente:

using System;
using System.Diagnostics;
using System.IO;
using System.Windows;
using System.Windows.Controls;
 
using Windows.UI.Notifications;
using Windows.Data.Xml.Dom;
 
namespace DesktopToastsSample
{
    public partial class MainWindow : Window
    {
        private const String APP_ID = "Microsoft.Samples.DesktopToastsSample";
        public MainWindow()
        {
            InitializeComponent();
            ShowToastButton.Click += ShowToastButton_Click;
        }
 
        // Crea y muestra un toast.
         // Consulte la muestra "Tostadas" para obtener más detalles sobre lo que se puede hacer con las tostadas.
        private void ShowToastButton_Click(object sender, RoutedEventArgs e)
        {
 
            // Obtenga una plantilla XML de brindis
            XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastImageAndText04);
 
            // Ejemplo de escritura de texto
            XmlNodeList stringElements = toastXml.GetElementsByTagName("text");
            for (int i = 0; i < stringElements.Length; i++)
            {
                stringElements[i].AppendChild(toastXml.CreateTextNode("This is the line #" + i));
            }
 
            // Especificar la ruta absoluta a una imagen
            String imagePath = "file:///" + Path.GetFullPath("toastImageAndText.png");
            XmlNodeList imageElements = toastXml.GetElementsByTagName("image");
            imageElements[0].Attributes.GetNamedItem("src").NodeValue = imagePath;
 
            // Crea el toast y adjunta los oyentes de eventos
            ToastNotification toast = new ToastNotification(toastXml);
            toast.Activated += ToastActivated;
            toast.Dismissed += ToastDismissed;
            toast.Failed += ToastFailed;
 
            // Muestre el brindis. ¡Asegúrese de especificar AppUserModelId en el acceso directo de su aplicación!
            ToastNotificationManager.CreateToastNotifier(APP_ID).Show(toast);
        }
 
        private void ToastActivated(ToastNotification sender, object e)
        {
            Dispatcher.Invoke(() =>
            {
                Activate();
                Output.Text = "The user activated the toast.";
            });
        }
 
        private void ToastDismissed(ToastNotification sender, ToastDismissedEventArgs e)
        {
            String outputText = "";
            switch (e.Reason)
            {
                case ToastDismissalReason.ApplicationHidden:
                    outputText = "The app hid the toast using ToastNotifier.Hide";
                    break;
                case ToastDismissalReason.UserCanceled:
                    outputText = "The user dismissed the toast";
                    break;
                case ToastDismissalReason.TimedOut:
                    outputText = "The toast has timed out";
                    break;
            }
 
            Dispatcher.Invoke(() =>
            {
                Output.Text = outputText;
            });
        }
 
        private void ToastFailed(ToastNotification sender, ToastFailedEventArgs e)
        {
            Dispatcher.Invoke(() =>
            {
                Output.Text = "An error ocurred";
            });
        }
    }
}

Puede  leer más sobre este fragmento aquí  y el artículo de msdn  aquí .

Esto podria interesarte

Conviertete en un programador más sociable