Kod
Oto mała metoda, która zapisze kontrolkę (która ma być użyta jako Live Tile), a następnie zwróci ścieżkę do pliku w Isolated Storage. Tą ścieżkę następnie musimy dodać do StandardTileData we właściwości BackgroundImage.
I to tyle - obrazkowy kafelek powinien pojawić się na ekranie głównym telefonu! Warto również potestować nazwę kafelka, bo mam wrażenie że raz na jakiś czas nie odświeża się na WP8, a więc można tak zmienić poniższy kod, aby nazwa pliku była generowana z GUID-em. Oczywiście wówczas należy kasować wszystkie nieużywane kafelki, żeby niepotrzebnie nie zużywać pamięci telefonu.
public static string SaveTileToJpeg(UIElement customTile, string filename = "CustomTile.jpg", int width = 336, int height = 336, int quality = 95) { string dir = "Shared/ShellContent"; string filePath = dir + "/" + filename; customTile.UpdateLayout(); customTile.Measure(new Size(width, height)); customTile.UpdateLayout(); customTile.Arrange(new Rect(0, 0, width, height)); var bmp = new WriteableBitmap(width, height); bmp.Render(customTile, null); bmp.Invalidate(); var myStore = IsolatedStorageFile.GetUserStoreForApplication(); if (!myStore.DirectoryExists(dir)) { myStore.CreateDirectory(dir); } using (IsolatedStorageFileStream myFileStream = myStore.CreateFile(filePath)) { bmp.SaveJpeg(myFileStream, bmp.PixelWidth, bmp.PixelHeight, 0, quality); myFileStream.Close(); } return "isostore:" + filePath; }
A oto przykładowy efekt:
Pomocne linki:
Brak komentarzy:
Prześlij komentarz