如何更新IconicTile& LockScreen由WMAppManifest.xml定义

时间:2013-02-07 08:27:33

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

我正在尝试为Windows Phone 8创建一个IconicTile。我已经使用VS2012定义了Tile Template到TemplateIconic的类型,并添加了一个Tile Title和两个中小型图像。

如果我将我的应用程序固定到开始屏幕,我可以选择像预期的中小型瓷砖。

现在我想更新我在WMAppManifest.xml中定义的IconicTile。据我了解IconicTile,它需要在代码中更新,如果我定义了一个,它还会更新LockScreen图标和计数。我添加了一个DeviceLockImageURI和这个Extensions:

<Extensions>
  <Extension ExtensionName="LockScreen_Notification_IconCount" ConsumerID="{111DFF24-AA15-4A96-8006-2BFF8122084F}" TaskID="_default"/>
  <Extension ExtensionName="LockScreen_Notification_TextField" ConsumerID="{111DFF24-AA15-4A96-8006-2BFF8122084F}" TaskID="_default" />
</Extensions>

第一个问题:此ConsumerID是否始终相同或是哪个ID?

要更新我在WMAppManifest.xml中定义的IconicTile,我需要在屏幕上获取任何固定的应用程序Tiles。我已经阅读了很多教程,解释了如何从应用程序手动添加切片,但我只想使用我在WMAppManifest.xml中定义的切片。因此,所有教程都建议使用以下代码获取当前活动的Tile:

ShellTile.ActiveTiles.FirstOrDefault();

ActiveTiles是一个IEnumeration,只提供我:Equals,GetEnumerator,GetHashCode,GetType和ToString

第二个问题:我在这里缺少什么? FirstOrDefault是否仅适用于FlipTiles或CycleTiles?我只想使用IconicTile!

所以我坚持在屏幕上识别当前活动的IconicTile,以便我可以使用IconicTileData对象来更新IconicTile的计数或文本。我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

对于第一个问题:

从Xml创建IconicTile时,我seen有一个Tile ID:

<wp:Tile Id="[Tile ID]" Template="IconicTile">

也许是这个ID?否则我将永远使用相同的静态ID,因为没有关于如何创建此ID的文档。

关于第二个问题:

我发现了错误:我失踪了

using System.Linq;

此使用允许访问使用FirstOrDefault或类似命令所必需的Linq方法。

我被误导了
using System.Xml.Linq;

这肯定与Linq类不一样;)