在 WPF 中一次绘制一个像素或线条并显示它
本文关键字:像素 显示 绘制 WPF 一次 一个 | 更新日期: 2023-09-27 18:32:57
我正在将光线追踪器迁移到 C# 和 WPF,但我在最简单的事情上遇到了麻烦:如何在画布或位图上显示每个像素(或线条)。
我希望能够在每个新像素(或至少每个完成的行)完成后看到它们,而不是等到整个图像创建完毕。
像许多光线追踪器一样,我有一个中央循环,它可以"扫描"屏幕:
for(int y = 0; y < height; y++)
{
for(int x = 0; x < width; x++)
{
pixelRGB = SendRay(...);
// PLEASE help me update the image here ! :-)
DrawPixelAndLetTheUserSeeIt();
}
}
我尝试使用可写位图或直接写入画布,但请注意,在整个循环完成之前,不会更新/显示图像。
我怀疑这与线程有关,但我无法理解它。
我对 WPF 一点也不熟悉,所以如果我跑题了,请原谅我。
这里是否有一些双重缓冲区阻止您控制何时有效地完成图形更新?
如果是这样,您可能希望触发自己将缓冲区交换到图形表面。