我想保持从CanvasAnimatedControl最后绘制的框架,以绘制在它之上。
是否有内置特性来完成此操作,还是必须使用双缓冲。
我想用这实现win2d。
发布于 2015-12-21 08:11:19
如前所述,这里
当创建绘图会话时,Win2D总是自动清除控件。CanvasRenderTargets不是。这样,应用程序就能够对CanvasRenderTargets进行渐进式的更改,并且避免每次都重新绘制整个场景。
CanvasDevice device = CanvasDevice.GetSharedDevice();
CanvasRenderTarget offscreen = new CanvasRenderTarget(device, width, height, 96);
using (CanvasDrawingSession ds = offscreen.CreateDrawingSession())
{
//ds.Clear(Colors.Black); // no clear and you are good to go.
ds.DrawRectangle(100, 200, 5, 6, Colors.Red);
}注意,有一个对清除的方法调用。否则,位图将被未定义的内容初始化。
要将CanvasRenderTarget绘制到另一个绘图会话,只需使用DrawImage(ICanvasImage)或其重载之一。例如:
void canvasControl_Draw(CanvasControl sender, CanvasDrawEventArgs args)
{
args.DrawingSession.DrawImage(offscreen, 23, 34);
}https://stackoverflow.com/questions/34381461
复制相似问题