Metro Tile Notification

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);
        }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值