gpt4 book ai didi

c# - 提高在 wpf 中绘制平铺位图的性能

转载 作者:太空宇宙 更新时间:2023-11-03 14:17:45 25 4
gpt4 key购买 nike

我正在寻找一种方法来提高我正在做的一些绘图的性能。目前我正在绘制一个 32x32 的瓷砖网格。使用以下代码绘制到绘图上下文

for (int x = startX; x < endX; x++)
{
for (int y = startY; y < endY; y++)
{
dg.Children.Add(
new ImageDrawing(_mapTiles[GameWorldObject.GameMap[x, y].GraphicsTile.TileStartPoint],
new Rect(CountX * 8, CountY * 8, 8, 8)
));

dg.Children.Add(
new GeometryDrawing(
null,
new Pen(
new SolidColorBrush(
Color.FromRgb(255, 0, 20)), .3),
new RectangleGeometry(
new Rect(CountX * 8, CountY * 8, 8, 8)
)
)
);

CountY++;
}
CountY = 0;
CountX++;
}

dc.DrawDrawing(dg);

我正在绘制的图像是一个 CachedBitmap。即使使用 CachedBitmap,每次我需要重绘 Canvas 时仍然会有大约半秒的延迟。

不确定是否有更高效的方法来处理绘制到此网格的操作。最终我想扩展控件以用作迷你 map ,因此我需要牢记这一点。

此外,我之前曾尝试将每个位图直接绘制到绘图上下文,但这似乎有点慢。

最佳答案

我在绘图之前添加了 DrawingGroup.Freeze(),它似乎有助于提高性能。

关于c# - 提高在 wpf 中绘制平铺位图的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6210264/

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