我正在尝试使用Iconic Tile模板在我的Windows Phone 8应用程序中创建辅助实时磁贴,并且在创建磁贴时出现异常。我得到的例外是:
类型'System.InvalidOperationException'的第一次机会异常 发生在Microsoft.Phone.ni.dll
附加信息:initialData只能是类型 StandardTileData。
我用来创建实时图块的方法是:
public void PinLock(Lock item)
{
Uri smallIcon = new Uri(item.IsLocked ? LockedIcon : UnlockedIcon, UriKind.Relative);
Uri largeIcon = new Uri(item.IsLocked ? LockedIcon : UnlockedIcon, UriKind.Relative);
var tileData = new IconicTileData
{
IconImage = largeIcon,
SmallIconImage = smallIcon,
Title = item.Name
};
string tileUri = "/MainPage.xaml?Action=LockDetails&LockId=" + item.Id;
ShellTile.Create(new Uri(tileUri, UriKind.Relative), tileData);
}
我在 WMAppManifest.xml 中设置了实时图块类型,如下所示:
<PrimaryToken TokenID="MyToken" TaskName="_default">
<TemplateIconic>
<SmallImageURI IsRelative="true" IsResource="false">Assets\lock-icon.png</SmallImageURI>
<Count>0</Count>
<IconImageURI IsRelative="true" IsResource="false">Assets\lock-icon.png</IconImageURI>
<Title>Locky</Title>
<Message>
</Message>
<BackgroundColor>
</BackgroundColor>
<HasLarge>false</HasLarge>
<LargeContent1>
</LargeContent1>
<LargeContent2>
</LargeContent2>
<LargeContent3>
</LargeContent3>
<DeviceLockImageURI IsRelative="true" IsResource="false">
</DeviceLockImageURI>
</TemplateIconic>
</PrimaryToken>
</Tokens>
我找不到任何正确方法的好例子,我找不到互联网上的其他任何人遇到此异常消息。
我尝试过的其他事情:
非常感谢任何帮助或好的例子。
答案 0 :(得分:1)
答案就在你的例外中。在开始屏幕上创建其他切片时,只能使用派生自StandardTileData的类。这限制了您到该类或其派生实现FlipTileData。 IconicTileData和CycleTileData来自较低级ShellTitleData。该类也是StandardTileData的基础。
创建FlipTileData的一些示例可以在MSDN documentation上找到,但是因为它来自与上面示例相同的基类,所以您可以轻松更改类名并修补XML一点点。