1

Canvas の内容をビットマップにレンダリングするコードがいくつかあります。キャンバスの子要素は定期的に視覚的に変化する可能性があり、ビットマップを再描画できるように、これがいつ発生したかを識別する方法が必要です。私の最初のアイデアはオーバーライドすることでしたCanvas.OnRenderが、これは子が再レンダリングされたときに呼び出されないようです。

どんなアドバイスでも大歓迎です

4

1 に答える 1

2

WPF はフレーム ベースではなく、ダーティ リージョンの概念に基づいて再描画されることに注意してください。また、OnRender は OnPaint とは異なり、実際のコンテンツをレンダリングするためにキャッシュされた表現を作成するために使用されます。ほとんどの場合、変更を表示するために再レンダリングする必要がないため、呼び出されません。必要な効果を得るには、 CompositionTarget.Renderingイベントを使用できます。これはおそらく、ペイント イベントに最も近いものです。ただし、1 つの警告として、そのイベントにアタッチすると、レンダリングの動作が少し変わります。これを確認してください。

別のアイデアは、VisualBrushを調べることです。

于 2012-09-12T14:03:59.117 に答える