4

我有一个使用本地 SqlCe 数据库的 Mango WP7.5 应用程序。我想添加一个 LiveTile 更新,显示基于当前日期和月份从本地数据库获取的信息。

我发现的所有示例都通过从服务器下载远程图像来更新背景,但我只需要进行本地数据库查询并在我的磁贴中显示一个字符串。

我可以做吗?如何?

4

1 回答 1

7

是的你可以。你必须

  1. 生成包含您的文本信息的图像
  2. 将此图像保存到独立的存储和
  3. 通过isostoreURI 访问它。

这是显示如何执行此操作的代码(它更新应用程序磁贴):

// set properties of the Application Tile
private void button1_Click(object sender, RoutedEventArgs e)
{
    // Application Tile is always the first Tile, even if it is not pinned to Start
    ShellTile TileToFind = ShellTile.ActiveTiles.First();

    // Application Tile should always be found
    if (TileToFind != null)
    {
        // create bitmap to write text to
        WriteableBitmap wbmp = new WriteableBitmap(173, 173);
        TextBlock text = new TextBlock() { FontSize = (double)Resources["PhoneFontSizeExtraLarge"], Foreground = new SolidColorBrush(Colors.White) };
        // your text from database goes here:
        text.Text = "Hello\nWorld";
        wbmp.Render(text, new TranslateTransform() { Y = 20 });
        wbmp.Invalidate();

        // save image to isolated storage
        using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
        {
            // use of "/Shared/ShellContent/" folder is mandatory!
            using (IsolatedStorageFileStream imageStream = new IsolatedStorageFileStream("/Shared/ShellContent/MyImage.jpg", System.IO.FileMode.Create, isf))
            {
                wbmp.SaveJpeg(imageStream, wbmp.PixelWidth, wbmp.PixelHeight, 0, 100);
            }
        }

        StandardTileData NewTileData = new StandardTileData
        {
            Title = "Title",
            // reference saved image via isostore URI
            BackgroundImage = new Uri("isostore:/Shared/ShellContent/MyImage.jpg", UriKind.Absolute),
        };

        // update the Application Tile
        TileToFind.Update(NewTileData);
    }
}
于 2011-11-06T22:27:25.423 回答