Example #1
0
 /// <summary>
 /// Shows the message to the user.
 /// </summary>
 /// <param name="Parent"></param>
 /// <param name="Message">The message to show.</param>
 /// <param name="glw">Color of the glow.</param>
 /// <param name="delay">The time before the message to disappear, in Milliseconds.</param>
 /// <param name="Fonte"></param>
 /// <param name="redBackground"></param>
 /// <remarks></remarks>
 public static void Show(Form Parent, string Message, Color glw, ToastDelay delay, Font Fonte = null, bool redBackground = false)
 {
     Show(Parent, Message, glw, (int)delay, Fonte, redBackground);
 }
Example #2
0
        /// <summary>
        /// Affichage d'un toast
        /// </summary>
        /// <param name="toastType"></param>
        /// <param name="text"></param>
        /// <param name="imagePath"></param>
        /// <param name="delay"></param>
        public static void Toasting(ToastTemplateType toastType, string[] text, string imagePath = "", ToastDelay delay = ToastDelay.Short)
        {
            // Obtention du modèle XML
            var         toastXML = toastType;
            XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastXML);

            // Textes
            XmlNodeList toastTextElements = toastXml.GetElementsByTagName("text");

            // Il peut y avoir plusieurs noeuds en fonction du template utilisé
            // Il y a toujours un noeud "texte"
            toastTextElements[0].AppendChild(toastXml.CreateTextNode(text[0] ?? ""));

            switch (toastType)
            {
            // Ces templates n'ont que deux noeuds de texte
            case ToastTemplateType.ToastText02:
            case ToastTemplateType.ToastImageAndText02:
            case ToastTemplateType.ToastText03:
            case ToastTemplateType.ToastImageAndText03:

                toastTextElements[1].AppendChild(toastXml.CreateTextNode(text[1] ?? ""));
                break;

            // Ces templates ont trois noeuds de texte
            case ToastTemplateType.ToastText04:
            case ToastTemplateType.ToastImageAndText04:

                toastTextElements[1].AppendChild(toastXml.CreateTextNode(text[1] ?? ""));
                toastTextElements[2].AppendChild(toastXml.CreateTextNode(text[2] ?? ""));
                break;
            }

            XmlNodeList toastImageElements = toastXml.GetElementsByTagName("image");

            if (toastImageElements.Count > 0)
            {
                try
                {
                    new Uri(@"ms-appx:///" + imagePath, UriKind.RelativeOrAbsolute);
                }
                catch (Exception ex)
                {
                    return;
                }

                // Il n'y a qu'un seul noeud en ce qui concerne les images
                ((XmlElement)toastImageElements[0]).SetAttribute("src", @"ms-appx:///" + imagePath);
                ((XmlElement)toastImageElements[0]).SetAttribute("alt", @"> Notification <");
            }

            // Temps: on obtient l'élement root du XML et on ajoute l'information à propos de la durée
            IXmlNode toastRoot = toastXml.SelectSingleNode("/toast");

            ((XmlElement)toastRoot).SetAttribute("duration", delay.ToString());

            // Paramètres de lancement
            ((XmlElement)toastRoot).SetAttribute("launch", "{\"type\":\"toast\"}");

            // Affichage
            ToastNotification notification = new ToastNotification(toastXml);

            ToastNotificationManager.CreateToastNotifier().Show(notification);
        }