DrawingContext.PushClip
및 그에 상응하는 Pop
메서드에 의존하는 렌더링 코드가 있습니다.WPF 푸시 및 팝
protected override void OnRender(DrawingContext drawingContext)
{
drawingContext.PushClip(whatever);
OnRenderInternal(...);
drawingContext.Pop();
}
, 이제 정말 나쁜 무언가가
OnRenderInternal
방법에서 발생하고 (호출되지 얻을 않습니다이 경우Pop
에서) 예외를 throw 가정하자. 이로 인해 전체 렌더링 프로세스 이 손상되거나 다른 작업을 수행하기 전에 드로잉 컨텍스트가 "안전한"상태로 되돌아갑니다 (다른 렌더링 가능 항목에 클리핑이 발생하지 않음)?기본적으로 항상은 렌더링 작업을 수행 할 때 드로잉 컨텍스트를 초기 상태로 되 돌리시겠습니까?
이 간단한 경우
try-finally
문을 사용하여 문제를 피할 수 있지만 올바른Push/Pop
스택을 유지하는 것을 잊으면 어떻게됩니까? 당신이 할 수있는
고맙습니다. 그러나 나는 정말로 '팝'을 부르는 것을 잊었을 때 나는 정말로 관심이있다. 그리고 나는 그것이 얼마나 나쁜가를 알고 싶다. (나의 질문에서 마지막 문장을 보라). –
음, * 무엇이든 * 렌더링 할 수 없으며 매번 오류가 발생하면 튀어 나올 때까지 아무것도 렌더링하지 않습니다. –