2013-02-03 44 views
0

我試圖創建的Windows Phone 8使用FlipTileData瓷磚我用這個代碼:ShellTile.Create與FlipTileData引發InvalidOperationException?

 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。我在這裏做錯了什麼?

此代碼可以正常使用StandardTileData類,不包括SmallBackgroundImage和WideBackgroundImage屬性。

如果它的事項,完整的代碼是:

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); 
    } 
+0

什麼是'mainPage'字符串包含哪些內容? –

+0

編輯代碼以包含此 – msbg

回答

1

如果使用你需要使用的ShellTile.Create()過載,包括第三個參數的新瓦模板。

這應該做的伎倆:

ShellTile.Create(mp, tileData, true); 
+0

謝謝你,工作。對不起,我花了這麼長時間,我沒有在需要這個項目的工作。 – msbg

相關問題