芒果应用瓷砖 - 删除回来

时间:2011-07-04 16:09:31

标签: tile windows-phone-7

这是一个简单的问题,看似简单的任务,但我找不到任何关于如何完成我需要做的事情的信息。

我有一个应用程序,其主要图块(固定时)有时需要是默认的单面图块,有时需要在图块背面显示信息。我可以从ScheduledActionService成功添加BackBackgroundImage,BackContent和BackTitle,但是当不再需要它们时我无法删除它们。这不是辅助磁贴,因此我无法将其删除并重新创建并重新添加。

有没有人知道是否可以将双面贴砖恢复为单面通过代码,如果是这样,我该如何实现这种行为呢?

修改

从StandardTileData对象应用的设置是附加的 - 例如,如果指定标题,则所有其他元素保持不变,只更新标题。我试图将出现在tile背面的三个参数设置为null并取得部分成功。效果是背景图像,标题文本和内容文本都被删除了,但是图块仍然会翻转以显示完全空的反面。

再次编辑

因此,在查看文档时,磁贴背面的行为与前端不同。将后面的内容或后缀设置为string.Empty将删除它们。一切都很好。但是,它确实说“如果设置为空URI,则不会显示BackBackgroundImage。”。我如何创建一个空的Uri?我尝试了新的Uri(字符串,空)但是这会引发一个关于尝试创建一个空Uri的异常 - 这就是我想要做的。

3 个答案:

答案 0 :(得分:28)

好吧,我想我已经知道了,而且它似乎与处理瓷砖数据的方式有所变化......

以前,将值设置为空字符串现在会在磁贴中生效。对于eaxmple,设置title = string.Empty将保留现有标题。但现在,它将删除标题。这很好 - 这意味着我可以轻松删除BackTitle和BackContent字符串。我们到了一半。

现在,为了摆脱BackBackgroundImage,文档说明“如果设置为空URI,则不会显示BackBackgroundImage”。 - 一切都很好,除非你不能以任何简单的方式创建一个空的Uri。我使其工作的一种方法是将其设置为不存在的Uri值,例如

BackBackgroundImage = new Uri("obviouslyMadeUpLocation", UriKind.Relative);

我希望在您尝试将其应用于磁贴时抛出异常,但它不会 - 它只是清除背景图像。

就是这样。我似乎需要做的就是调用以下内容来取消设置这些属性并将我的磁贴放回原位。

private void ResetMyMainTile()
{
    ShellTile tile = ShellTile.ActiveTiles.First();
    StandardTileData data = new StandardTileData
    {
        BackBackgroundImage = new Uri("IDontExist",UriKind.Relative),
        BackContent = string.Empty,
        BackTitle = string.Empty
    };
    tile.Update(data);
}

答案 1 :(得分:1)

这个适合我。

new Uri("Background.png", UriKind.RelativeOrAbsolute);

ShellTile TileToFind = ShellTile.ActiveTiles.First();

        if (TileToFind != null)
        {

            StandardTileData NewTileData = new StandardTileData
            {
                Title ="Status",
                BackgroundImage = new Uri("Background.png", UriKind.RelativeOrAbsolute),
                Count = 0,
                BackTitle = "",
                BackBackgroundImage = new Uri("doesntexist.png", UriKind.RelativeOrAbsolute),
                BackContent = ""
            };

            TileToFind.Update(NewTileData);
        }

答案 2 :(得分:0)

尝试将整个图块(所有细节)再次设置为之前/之前的所有内容,但没有背景细节。

<强>更新
这不起作用吗?:

ShellTile tile = ShellTile.ActiveTiles.First();
tile.Update(null);

tile.update(new StandardTileData());