// Initialize the app's tiles on the Start page. There are three different sizes of tiles users can // choose from. private void InitializeTiles() { tileUpdater = TileUpdateManager.CreateTileUpdaterForApplication(); var mediumSquareTile = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150PeekImageAndText01); var largeSquareTile = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare310x310ImageAndText02); var wideTile = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWide310x150PeekImage02); tileUpdater.EnableNotificationQueue(true); mediumSquareTile.GetElementsByTagName("text")[0].InnerText = "TicTacToe"; largeSquareTile.GetElementsByTagName("text")[0].InnerText = "TicTacToe"; wideTile.GetElementsByTagName("text")[0].InnerText = "TicTacToe"; var node1 = wideTile.ImportNode(mediumSquareTile.GetElementsByTagName("binding")[0], true); wideTile.GetElementsByTagName("visual")[0].AppendChild(node1); var node2 = wideTile.ImportNode(largeSquareTile.GetElementsByTagName("binding")[0], true); wideTile.GetElementsByTagName("visual")[0].AppendChild(node2); var testNotification = new TileNotification(wideTile); testNotification.Tag = "Test"; tileUpdater.Update(testNotification); badgeUpdater = BadgeUpdateManager.CreateBadgeUpdaterForApplication(); }
/// <summary> /// 刷新磁贴 /// </summary> /// <param name="updator">传入更新类型参数:应用磁贴,二级磁贴</param> private void UpdateTile(TileUpdater updator) { updator.Clear(); updator.EnableNotificationQueue(true); XmlDocument tile = new XmlDocument(); foreach (var item in gridNameDict) { tile = Windows.UI.Notifications.TileUpdateManager.GetTemplateContent(item.Key.Value); var imageElement = tile.GetElementsByTagName("image")[0]; imageElement.Attributes.GetNamedItem("src").NodeValue = "ms-appdata:///local/" + item.Key.Key + this.title??"" + ".png"; var notification = new Windows.UI.Notifications.TileNotification(tile); updator.Update(notification); } }
private void ScheduleTileUpdate(DateTime baseTime, TimeSpan shift, TileUpdater tileUpdater, ClockFormat clockFormat) { var shiftedTime = baseTime.Add(shift); var interval = 60/_baseDateTimes.Count(); var i = 0; var calculatedCitiesInfo = _baseDateTimes.Select(c => new CalculatedCityInfo { CityInfo = c.Key, DestinationTime = c.Value.Add(shift) }).ToList(); foreach (var info in calculatedCitiesInfo) { var tileXmlNow = GetTileUpdateMessage(info, calculatedCitiesInfo, _baseDateTimes.Count(), clockFormat); var document = new XmlDocument(); document.LoadXml(tileXmlNow); var deliveryTime = shiftedTime.AddSeconds(i * interval); if (deliveryTime <= DateTime.Now) { tileUpdater.Update(new TileNotification(document) { ExpirationTime = shiftedTime.AddSeconds(interval) }); } else { var scheduledNotification = new ScheduledTileNotification(document, deliveryTime) { ExpirationTime = deliveryTime.AddSeconds(interval) }; tileUpdater.AddToSchedule(scheduledNotification); } i++; } }