1

から最後に描画したフレームを保持して、そのCanvasAnimatedControl上に描画したい。
これを行うための組み込み機能はありますか、それともダブルバッファリングを使用する必要がありますか?

これをwin2dで実装したい。

4

1 に答える 1

3

ここで述べたように:

描画セッションが作成されると、コントロールは常に 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);
}

Clearへのメソッド呼び出しがあることに注意してください。これがないと、ビットマップは未定義の内容で初期化されます。

 

CanvasRenderTarget を別の描画セッションに描画するには、DrawImage(ICanvasImage)またはそのオーバーロードの 1 つを使用するだけです。例えば:

void canvasControl_Draw(CanvasControl sender, CanvasDrawEventArgs args)
{
    args.DrawingSession.DrawImage(offscreen, 23, 34);
}
于 2015-12-21T08:11:19.107 に答える