gpt4 book ai didi

.net - 如何在WPF中暂停和恢复布局?

转载 作者:行者123 更新时间:2023-12-04 03:02:29 27 4
gpt4 key购买 nike

如何在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.
...
}

最佳答案

WPF是保留的合成引擎。这意味着您不必自己挂接Rendering事件来进行渲染,而是使用将要放入树中的节点来组成图像。有关WPF体系结构的详细信息,请参见此处:WPF Architecture。我可以向您保证,如果您对本文档以及Rick Sladkey发送的布局系统链接完全了解,那么您还应该理解,如果要继续使用WPF,为什么还要更改代码。

如果您正确使用WPF(例如,使用依赖项属性,例如重写Measure&Arrange方法),您将看到它是一个非常强大的引擎,能够在图形树中显示数千个节点。我建议另一个有用的读物​​:ZoomableApplication2: A Million Items

关于.net - 如何在WPF中暂停和恢复布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4556190/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com