0

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

如果我将我的应用固定到开始屏幕,我可以像预期的那样在中小型磁贴之间进行选择。

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

<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 的计数或文本。我在这里想念什么?

4

1 回答 1

0

对于第一个问题:

当您从 Xml 创建 IconicTile 时,我看到了 Tile ID:

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

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

对于第二个问题:

我发现了错误:我失踪了

using System.Linq;

这种使用允许访问使用 FirstOrDefault 或类似命令所需的 Linq 方法。我被误导了

using System.Xml.Linq;

这绝对不是同一个 Linq 类;)

于 2013-02-07T09:38:43.380 回答