windows phone live tile backgroundimage源码和拉伸问题

时间:2012-09-10 21:43:06

标签: image windows-phone-7 live-tile

我的Windows手机应用程序中的二级实时图块背景图像出现问题,它没有拉伸并正确适合图块(这是一个.png图像)

我获取数据,然后创建我的图块数据:

var tileData = new StandardTileData
        {
            Title = titleString,
            BackContent = contentString,
            BackTitle = backTitleString,
            BackgroundImage = new Uri(httpUrlString)                
        };

有没有办法改变拉伸或“重新模仿”瓷砖?

我还找到了一个带有writeablebitmap的解决方案here,但是我无法理解如何将这个位图作为源,因为backgroundimage属性只接受一个Uri

2 个答案:

答案 0 :(得分:2)

您需要调整图片大小以使其具有良好的宽高比(请参阅答案here

然后你必须将生成的WriteableBitmap保存在Isolated Storage中,如下所示:

        // 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),
        };

答案 1 :(得分:1)

问题是图像没有完全加载,因此没有正确渲染。我使用了ImageOpened事件,然后将其保存为Olivier建议的