如何在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.
...
}
Sim*_*ier 13
WPF是一个保留的组合引擎.它的意思是你没有做渲染自己挂钩的Rendering事件,而是谱写使用,你会放一个树节点的图像.有关WPF架构的详细信息,请参见此处:WPF架构.我可以向您保证,如果您完全理解本文档以及Rick Sladkey发送的布局系统链接,您还应该了解为什么要在继续使用WPF时更改代码.
如果您使用WPF正确播放(例如:使用依赖属性,例如覆盖Measure&Arrange方法),您将看到它是一个非常强大的引擎,能够在图形树中显示数千个节点.我建议另一个有用的阅读:ZoomableApplication2:百万项
| 归档时间: |
|
| 查看次数: |
9790 次 |
| 最近记录: |