Metro Tile Notification

来源:互联网 发布:最好用的c语言编译器 编辑:程序博客网 时间:2024/06/05 04:14

Metro Show Notification(Text&Image), use the notification queue to cycle update the tile:


protected override void OnNavigatedTo(NavigationEventArgs e)        {            /*            //Cycle Update the Text            ShowTextNotification("One", "One");            ShowTextNotification("Two", "Two");            ShowTextNotification("Three", "Three");            Windows.UI.Notifications.TileUpdateManager.CreateTileUpdaterForApplication().EnableNotificationQueue(true);             */            ShowWideImageNotification("ms-appx:///Images/Metro.jpg", "one");            ShowWideImageNotification("ms-appx:///Images/redWide.png", "two");            ShowWideImageNotification("ms-appx:///Images/redWide2.png", "three");            Windows.UI.Notifications.TileUpdateManager.CreateTileUpdaterForApplication().EnableNotificationQueue(true);        }        public void ShowWideImageNotification(string image, string tag)        {            var tileXml = Windows.UI.Notifications.TileUpdateManager.GetTemplateContent(Windows.UI.Notifications.TileTemplateType.TileWideImage);            var tileAttr = tileXml.GetElementsByTagName("image");            XmlElement ele = tileAttr[0] as XmlElement;            ele.SetAttribute("src", image);            var tileNotification = new Windows.UI.Notifications.TileNotification(tileXml);            if (tag != null)            {                tileNotification.Tag = tag;            }            Windows.UI.Notifications.TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);        }        public void ShowTextNotification(string text, string tag = null)        {            var tileXml = Windows.UI.Notifications.TileUpdateManager.GetTemplateContent(Windows.UI.Notifications.TileTemplateType.TileSquareText03);            var tileAttr = tileXml.GetElementsByTagName("text");            tileAttr[0].AppendChild(tileXml.CreateTextNode(text));            var tileNotification = new Windows.UI.Notifications.TileNotification(tileXml);            if (tag != null)            {                tileNotification.Tag = tag;            }            Windows.UI.Notifications.TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);        }        void UpdateBadgeWithNumber(int number)        {            var badgeXml = Windows.UI.Notifications.BadgeUpdateManager.GetTemplateContent(Windows.UI.Notifications.BadgeTemplateType.BadgeNumber);            var badgeAttr = badgeXml.SelectSingleNode("badge");            (badgeAttr as XmlElement).SetAttribute("value", number.ToString());            BadgeNotification badgeContent = new BadgeNotification(badgeXml);                        // send the notification to the app's application tile            BadgeUpdateManager.CreateBadgeUpdaterForApplication().Update(badgeContent);        }