芒果应用瓷砖 - 删除回来

Zom*_*eep 20 tile windows-phone-7

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

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

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

编辑

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

再次编辑

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

Zom*_*eep 28

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

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

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

BackBackgroundImage = new Uri("obviouslyMadeUpLocation", UriKind.Relative);
Run Code Online (Sandbox Code Playgroud)

我试图在你尝试将它应用到磁贴时抛出异常,但它不会 - 它只是清除背景图像.

就是这样了.我似乎需要做的就是调用以下内容来取消设置这些属性并将我的磁贴恢复原样.

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);
}
Run Code Online (Sandbox Code Playgroud)

  • 您可以像这样创建一个空的Uri:`new Uri("",UriKind.Relative)`(请注意,如果您将UriKind指定为Absolute,它将抛出异常). (2认同)