2014-01-13 4 views
1

Я пытаюсь обновить плитку приложения сгенерированным изображением. Я не получаю ошибок, но вместо этого цвета изображение просто черное: «Color.FromArgb (255, 0, 100, 50)». Любая идея почему?Сгенерированное изображение для плитки с неправильным цветом

//This have to be the Image, just a colored squer for the beginning 
var TestTile = new Grid() 
       { 
        Background   = new SolidColorBrush(Color.FromArgb(255, 0, 100, 50)), 
        HorizontalAlignment = HorizontalAlignment.Stretch, 
        VerticalAlignment = VerticalAlignment.Stretch, 
        Height    = 336, 
        Width    = 336, 
        Margin    = new Thickness(0, 12, 0, 0), 
       }; 

       //generation the image and save it within isoStorage 
       using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication()) 
       { 
        if (!store.DirectoryExists("shared/shellcontent")) 
        { 
         store.CreateDirectory("shared/shellcontent"); 
        } 
        var bitmap = new WriteableBitmap(336, 336); 
        bitmap.Render(TestTile, new TranslateTransform()); 
        var stream = store.CreateFile("/shared/shellcontent/test.jpg"); 
        bitmap.Invalidate(); 
        bitmap.SaveJpeg(stream, 366, 336, 0, 100); 
        stream.Close(); 
       } 

       // Tile Update 
       ShellTile PinnedTile = ShellTile.ActiveTiles.First(); 
       FlipTileData UpdatedTileData = new FlipTileData 
       { 

        BackgroundImage = new Uri("isostore:/shared/shellcontent/test.jpg", UriKind.RelativeOrAbsolute), 

       }; 
       PinnedTile.Update(UpdatedTileData); 

ответ

1

Если это помогает, вот как я сохраняю мозаичные изображения.

  1. Я всегда использую Shared \ ShellContent \ для местоположения. Не уверен, что если бы дело случая (не должны)
  2. Я всегда называю Меру, а затем организовать на UIElement перед его отправкой в ​​WriteableBitmap
  3. Использование UriKind.Absolute для фона
  4. URI

Попробуйте сохранить ваш образ, как, например:

string fileName = @"Shared\ShellContent\Tile.jpg"; 
Grid someElement = new Grid() 
{ 
    // Add Stuff 
} 
someElement.Measure(new Size(width, height)); 
someElement.Arrange(new Rect(0,0,width, height)); 
var bitmap = new WriteableBitmap(someElement, null); 

using(var stream = IsolatedStorageFile.GetUserStoreForApplication().OpenFile(fileName, FileMode.OpenOrCreate)) 
{ 
    bitmap.SaveJpeg(stream, width, height, 0, 100); 
} 

Uri uri = new Uri("isostore:/" + fileName, UriKind.Absolute); 
+0

Ok Я буду стараться использовать прямоугольник, чтобы задать цвет для фона – user3168511

0

Попробуйте использовать схему URI «ms-appdata» для доступа к файлу. Путь к изображению затем будет следующим образом:

BackgroundImage = new Uri("ms-appdata:///local/shared/shellcontent/test.jpg", UriKind.RelativeOrAbsolute) 

Вот что я использую, чтобы установить мозаичное изображение в одном из моих приложений, и она работает, как ожидалось.

Обратитесь к разделу «Локальные схемы URI папки» в данных для Windows Phone статьи для получения дополнительной информации: http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff402541(v=vs.105).aspx#BKMK_Medialibrary

+0

к сожалению у меня есть проблемы уже - но теперь у меня есть другой - я обновил свой пост – user3168511

Смежные вопросы