Как я могу приостановить и возобновить макет в WPF? Я слышал, что это не обязательно. Но это крайне необходимо!
Я обрабатываю много позиций изменений, и если они отображаются один за другим, это создает эффект задержки.
Вот какой код:
CompositionTarget.Rendering += new EventHandler(Draw);
void Draw(object sender, EventArgs e)
{
//Clean screen
for (int i = mainCanvas.Children.Count - 1; i > -1; i--)
{
if (mainCanvas.Children[i] is PlayerUserControl || mainCanvas.Children[i] is Image)
{
mainCanvas.Children.Remove(mainCanvas.Children[i]);
}
}
//DRAW FLOOR AROUND
FloorService.FloorEntity[] floorsAround = floorService.selectFloorsAround(Player.id);
for...
{
Image image = new Image();
image.Source = new BitmapImage(new Uri("/" + floorsAround[i].ImageSource, UriKind.Relative));
mainCanvas.Children.Add(image);
}
//DRAW PLAYERS AROUND
//Its similar as draw floors around.
...
}