我的Windows手机应用程序中的二级实时图块背景图像出现问题,它没有拉伸并正确适合图块(这是一个.png图像)
我获取数据,然后创建我的图块数据:
var tileData = new StandardTileData
{
Title = titleString,
BackContent = contentString,
BackTitle = backTitleString,
BackgroundImage = new Uri(httpUrlString)
};
有没有办法改变拉伸或“重新模仿”瓷砖?
我还找到了一个带有writeablebitmap的解决方案here,但是我无法理解如何将这个位图作为源,因为backgroundimage属性只接受一个Uri
答案 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建议的