无法更新动态创建的实时磁贴

时间:2013-10-30 13:55:01

标签: c# windows-phone-8 live-tile

我正在为Windows手机开发购物应用程序。

如果我手动固定图块,我可以通过我的代码更新图块。

这是我更新磁贴的代码

 ShellTile TileToFind = ShellTile.ActiveTiles.First();

            StandardTileData NewTileData = new StandardTileData
            {
                BackgroundImage = new Uri(offer_mobile_image[0], UriKind.RelativeOrAbsolute),
                Count = NotificationCount,
                BackTitle = location_area,
                BackContent = offer_title,
            };


            TileToFind.Update(NewTileData);

如果我通过代码动态创建实时图块,则无法更新我的图块

这里是我用来创建实时图块的代码

private void PinToStart()
    {
        StandardTileData standardTileData = new StandardTileData();
        standardTileData.BackgroundImage = new Uri(@"/ApplicationTile.png", UriKind.RelativeOrAbsolute);
        standardTileData.Title = "MyApplication";
        standardTileData.BackTitle = "this is my app";
        standardTileData.BackContent = "this is very good app";

        // Check if the application tile has already been defined - this is a tile that links to the app main page
        ShellTile tiletopin = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("MainPage.xaml"));
        if (tiletopin == null)
        {
            //Create ShellTile linking to main page of app
            ShellTile.Create(new Uri("/MainPage.xaml", UriKind.Relative), standardTileData);
        }
        else
        {
            MessageBox.Show("Application is already Pinned");
        }
    }

任何人都可以帮我更新动态创建的磁贴。 谢谢。

1 个答案:

答案 0 :(得分:0)

您的问题是 - 您正在尝试更新主磁贴,但您创建了辅助磁贴。 主要瓷砖始终是第一个。

如果您更新UpdateTile()方法,请执行以下操作:

ShellTile TileToFind = ShellTile.ActiveTiles.FirstOrDefault(
              x => x.NavigationUri.ToString().Contains("MainPage.xaml"));

通过代码创建的磁贴将被更新。