Автоматическое восстановление живой плитки в статическую плитку после удаления фонового агента

Основная плитка моего приложения имеет возможности живой плитки. Однако, если я отключу функцию живой плитки, когда я вернусь на начальный экран, основная плитка моего приложения по-прежнему будет отображать последнее состояние живой плитки.

Мне было интересно, что мне нужно сделать, чтобы восстановить основную плитку моего приложения в ее статическое состояние, как только я отключу функцию живой плитки? На данный момент мне нужно изменить размер плитки или удалить/повторно вставить ее, чтобы получить этот эффект.

Это код, который запускается, когда я выключаю живую плитку:

                // Remove the Background Agent for the live tile.
                ScheduledActionService.Remove("PeriodicTaskForLocation");


                // Update tile.
                RadFlipTileData extendedData = new RadFlipTileData()
                {
                    WideVisualElement = null,
                    WideBackVisualElement = null,
                    IsTransparencySupported = true
                };

                ShellTile tile = ShellTile.ActiveTiles.First();
                if (tile != null)
                {
                    tile.Update(extendedData);
                    LiveTileHelper.UpdateTile(tile, extendedData);
                }

person Barrrdi    schedule 20.07.2014    source источник


Ответы (1)


Это сделало свое дело:

  // Remove the Background Agent for the live tile.
  RemoveAgent("PeriodicTaskForLocation");

  // Delete tile.
  ShellTile tile = ShellTile.ActiveTiles.First();
  if (tile != null)
  {
                RadFlipTileData extendedData = new RadFlipTileData();
                extendedData.IsTransparencySupported = true;


                extendedData.WideBackgroundImage = new Uri("/Assets/Tiles/Icon.png", UriKind.Relative);
                extendedData.WideBackVisualElement = null;

                LiveTileHelper.UpdateTile(tile, extendedData);
  }
person Barrrdi    schedule 25.07.2014