フリーズしたウィンドウがあるときは知っていますが、別のウィンドウを上にドラッグすると跡が残りますか? 時々、ソリティア for Windows 3 の終わりのように見えることがあります :) 完了すると (私のスクリーンショットのように)。
このようなサーフェスを作成し、画像をキャプチャできる C# Windows (winforms/wpf) アプリケーションを作成したいのですが、どこから始めればよいか少し迷っています。
写真:

WPFを使用すると簡単になります。またはVisualBrushを含む任意のコントロールからを作成できます。それができたら、フォーム全体にペイントでき、同じ効果が得られます。または、 UI要素ではなく画像を使用して実行する場合は、を使用できます。WindowFrameworkElementVisualBrushImageBrush
ペイントするときは、毎回X / Yでオフセットするだけで、それ自体が上書きされる(つまり、オーバーペイントされますか?)ので、そのように見えます。
レンダリングするをホストするためにFrozenVisualHost派生する独自のクラスを作成できます。参照:MSDN:DrawingVisualオブジェクトの使用FrameworkElementDrawingVisual
メソッドをオーバーライドするFrozenVisualHost.OnRender()と、(を介して)マウスの動きを記録したときに、「フリーズしたスナップショット」を描画できますMouseMove。必ずInvalidateVisual()メソッドを呼び出してホストコントロールを更新してください。
注意点:VisualBrushウィンドウからを作成しても、タイトルバーまたはウィンドウの境界線のクロムはキャプチャされません。それが必要な場合は、スナップショットを手動で取得する必要があります(GDI):ここで説明するように。Bitmapただし、これを自分のに使用してImageBrush、同様にレンダリングを行うことができます。