使用新的WP8 Tiles使用反射而不是直接实例化和调用方法,如下所示。
http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj720574(v=vs.105).aspx
Type shellTileType = Type.GetType("Microsoft.Phone.Shell.ShellTile, Microsoft.Phone");
shellTileType.GetMethod("Update").Invoke(tileToUpdate, new Object[] { UpdateTileData });
我想知道是否有一个特定的原因反映正在使用这种情况。是否导致WP< 7.8将不会引用ShellTile类型,因此VM会出错?如果VM永远不会访问这部分代码就不够好了吗?
答案 0 :(得分:2)
您可以针对WP7或WP8平台之一定位您的应用。
在WP7 SDK中没有FlipTileData
类,因此您将无法使用此类来编写代码。
但是你可以在WP8设备上运行你的WP7应用程序,这样你就可以使用反射创建Wilde Tiles。 您只需要检查操作系统版本:
private static Version TargetedVersion = new Version(8, 0);
public static bool IsTargetedVersion
{
get
{
return Environment.OSVersion.Version >= TargetedVersion;
}
}
否则,如果您仅为WP8平台定位应用程序 - 可以随意使用FlipTileData
和其他类而无需反思。 Here你可以找到这个例子。
答案 1 :(得分:1)
在WP7 SDK中,没有适用于这些新Tile类型的API,它们仅在WP7.8和WP8中可用。因此,如果要在WP7.8设备或WP8设备上运行的WP7应用程序中使用新的磁贴大小,则必须使用反射。
当然在WP8应用程序中,您可以直接使用API而没有任何问题。