DrawingContext.PushClip
対応するPop
メソッドに依存するレンダリングコードがいくつかあります。
protected override void OnRender(DrawingContext drawingContext)
{
drawingContext.PushClip(whatever);
OnRenderInternal(...);
drawingContext.Pop();
}
ここで、
OnRenderInternal
メソッドで非常に悪いことが発生し、例外がスローされたとします (この場合Pop
、呼び出されることはありません)。これにより、レンダリング プロセス全体が中断されますか?または、他の操作を実行する前に、描画コンテキストが「安全な」状態に戻ります (他のレンダリング可能なアイテムに対してクリッピングは発生しません)。基本的に、レンダリング操作を実行するときに、描画コンテキストを初期状態に戻すことを常に気にする必要がありますか?
この単純なケースでは、ステートメントを使用することで問題を回避できることはわかっていますが、正しいスタック
try-finally
を保持するのを忘れるとどうなるでしょうか?Push / Pop