0

我在我的 Windows Phone 应用程序的辅助动态磁贴上遇到背景图像问题,它没有正确拉伸和适合磁贴(它是一个 .png 图像)

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

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

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

我也在这里找到了一个带有可写位图的解决方案,但我不明白如何将此位图作为源,因为 backgroundimage 属性只接受 Uri

4

2 回答 2

2

您需要调整图像大小以使其具有良好的纵横比(请参阅此处的答案)

然后,您必须将生成的 WriteableBitmap 保存在独立存储中,如下所示:

        // 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),
        };
于 2012-09-11T06:43:42.497 回答
1

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

于 2012-09-11T23:35:13.223 回答