看起来我设法通过在每次测量之前和之后在我的用户控件上调用 UpdateLayout 并安排调用来解决它,到目前为止工作良好。如果有人有其他解决方案,请告诉我
我有一个类似于这篇 文章中的问题,似乎用户已经找到了背后的原因。我想知道除了创建堆栈面板以在更新时正确渲染活动图块之外,是否还有其他解决方案?相同的代码在创建磁贴时工作正常,但在更新时无法正确呈现。
这是我的方法:
private void updateFrontTile()
{
var frontTile = new FrontMzaarTileControl();
TileData tileData = new TileData()
{
temp= "1",
temp2= "2",
temp3= "3",
temp4= "4",
temp5= "5"
};
frontTile.DataContext = tileData;
frontTile.Measure(new Size(691, 336)); // the user from the other post believes that this is not doing anything
frontTile.Arrange(new Rect(0, 0, 691, 336)); // the user from the other post believes that this is not doing anything
var bmp = new WriteableBitmap(691, 336);
bmp.Render(frontTile, null);
bmp.Invalidate();
var isf = IsolatedStorageFile.GetUserStoreForApplication();
FrontTileFilename = "/Shared/ShellContent/FrontTile.jpg";
if (!isf.DirectoryExists("/Shared/ShellContent"))
{
isf.CreateDirectory("/Shared/ShellContent");
}
using (var stream = isf.OpenFile(FrontTileFilename, System.IO.FileMode.Create))
{
bmp.SaveJpeg(stream, 691, 336, 0, 100);
}
}