0

WindowsPhone8でFlipTileDataを使用してタイルを作成しようとしています。次のコードを使用します。

        const string mainPage = "/MainPage.xaml";

        ...

        Uri mp = new Uri(mainPage + "?" + "tileid=" + tileId, UriKind.Relative);
        FlipTileData tileData = new FlipTileData();
        tileData.Title = tileTitle;
        tileData.BackgroundImage = new Uri("isostore:" + isourl);
        tileData.SmallBackgroundImage = new Uri("isostore:" + isourl);
        tileData.WideBackgroundImage = new Uri("isostore:" + isourl);
        ShellTile.Create(mp, tileData);

これにより、ShellTile.CreateメソッドでInvalidOperationExceptionがスローされます。同じナビゲーションURIを持つ他のタイルはありません。私はここで何が間違っているのですか?

このコードは、SmallBackgroundImageプロパティとWideBackgroundImageプロパティを除いて、StandardTileDataクラスを使用して正常に機能します。

重要な場合、完全なコードは次のとおりです。

    const string mainPage = "/MainPage.xaml";

    ...

    private void createbutton_Click(object sender, RoutedEventArgs e)
    {
        string tileId = new Random().Next().ToString();
        Uri mp = new Uri(mainPage + "?" + "tileid=" + tileId, UriKind.Relative);
        WriteableBitmap wbmp = new WriteableBitmap(tileGrid, null);

        string isourl = "/Shared/ShellContent/" + tileId + ".jpg";
        IsolatedStorageFileStream isfs = IsolatedStorageFile.GetUserStoreForApplication().CreateFile(isourl);
        wbmp.SaveJpeg(isfs, 173, 173, 0, 100);
        isfs.Close();

        FlipTileData tileData = new FlipTileData();
        tileData.Title = tileTitle;
        tileData.BackgroundImage = new Uri("isostore:" + isourl);
        tileData.SmallBackgroundImage = new Uri("isostore:" + isourl);
        tileData.WideBackgroundImage = new Uri("isostore:" + isourl);
        ShellTile.Create(mp, tileData);
    }
4

2 に答える 2

1

ShellTile.Create()新しいタイルテンプレートを使用する場合は、3番目のパラメーターを含むオーバーロードを使用する必要があります。

これでうまくいくはずです:

ShellTile.Create(mp, tileData, true);
于 2013-02-14T15:18:13.757 に答える
0

このコードをClosingハンドラー内で呼び出していますか?

Windows Phone 8では、Closingハンドラー内でCreate(Uri、ShellTileData)メソッドを使用してタイルを作成すると、InvalidOperationExceptionがスローされます。

http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206947(v=vs.105).aspx

編集:あなたはそれがStandardTileDataで動作したと言ったので、私はそうは思わない...

于 2013-02-03T19:23:17.003 に答える