我创建了 4 个磁贴模板内容,并在应用程序启动时使用这四个模板更新了磁贴。
现在我只想从应用程序中清除一个磁贴模板。我试过
TileUpdateManager.CreateTileUpdaterForApplication().Clear();
但这是清除所有磁贴模板。如何只清除一个特定的瓷砖?
我创建了 4 个磁贴模板内容,并在应用程序启动时使用这四个模板更新了磁贴。
现在我只想从应用程序中清除一个磁贴模板。我试过
TileUpdateManager.CreateTileUpdaterForApplication().Clear();
但这是清除所有磁贴模板。如何只清除一个特定的瓷砖?
无法Clear
从磁贴发出特定通知。该Clear
方法删除所有通知。
对于过期的磁贴内容,请考虑使用类ExpirationTime
上的属性TileNotification
,或调用Clear
然后重新发送仍然有效的通知。
我花了一段时间才弄清楚,所以我想我会把我的代码发布给任何寻求快速答案的人。
private void ClearScheduledTileNotifications()
{
var notify = Notifications.TileUpdateManager.CreateTileUpdaterForApplication();
// Clear the notifications. This wil stop the live tile stuff straight out, but it wont remove the items from the list.
notify.Clear();
// Get the list of notifications
var list = notify.GetScheduledTileNotifications();
// Loop through the list of notifications and remove them from the manager.
foreach (var item in list)
{
// NOTE: If you want the list to exist, you could change the expiration date here as recommended in the
// MS Article above. I am just removing. You could also search for specific criteria here, or use linq on the query above.
Notifications.TileUpdateManager.CreateTileUpdaterForApplication().RemoveFromSchedule(item);
}
}