自定义ShellTile

时间:2012-03-11 17:53:41

标签: windows-phone-7 live-tile

有没有办法创建一个在开始时显示的自定义ShellTile(用户固定我们的应用程序后)?我想调整大小并重新定位一个计数(标签),但我找不到办法做到这一点。

1 个答案:

答案 0 :(得分:3)

您无法更改标题或计数器的位置或样式,但您可以生成要在图块上显示的图像,例如:

WriteableBitmap bitmap = new WriteableBitmap(173, 173);

TextBlock textBlock = new TextBlock();
textBlock.TextWrapping = TextWrapping.Wrap;
textBlock.Foreground = new SolidColorBrush(Colors.White);
textBlock.FontSize = 22.0;
textBlock.Margin = new Thickness(12.0, 8.0, 8.0, 45.0);
textBlock.Text = "Lorem ipsum";
textBlock.HorizontalAlignment = HorizontalAlignment.Stretch;
textBlock.VerticalAlignment = VerticalAlignment.Stretch;

Grid layoutRoot = new Grid();
layoutRoot.Background = (Brush)App.Current.Resources["PhoneAccentBrush"];
layoutRoot.Width = 173.0;
layoutRoot.Height = 173.0;
layoutRoot.Children.Add(textBlock);

layoutRoot.Measure(new Size(173, 173));
layoutRoot.Arrange(new Rect(0, 0, 173, 173));
layoutRoot.UpdateLayout();
bitmap.Render(layoutRoot, null);
bitmap.Invalidate();

using (IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication())
{
    string fileName = "/Shared/ShellContent/BackgroundImage.jpg";
    using (Stream fileStream = storage.CreateFile(fileName))
    {
        bitmap.SaveJpeg(fileStream, 173, 173, 0, 100);
    }
}

StandardTileData tileData = new StandardTileData
{
    BackgroundImage = new Uri("isostore:"/Shared/ShellContent/BackgroundImage.jpg, UriKind.Absolute),
    Title = "Lorem Ipsum,
};

ShellTile.Create(new Uri("/MainPage.xaml", UriKind.Relative), tileData);