2010-07-21 3 views
2

개체를 고정하기 전에 항상 CanFreeze을 검사해야합니까?언제 CanFreeze를 사용할 수 있습니까?

마크 업에 사용하는 PresentationOptions:Freeze을 보면 그럴 수 없습니다. 그러므로 저는 CanFreeze가 everey 객체 생성 전에 호출되어야한다고 생각하지 않습니다.

하지만 언제 CanFreeze를 사용할 수 있습니까?

답변

2

당신은 CanFreeze 전화를해야하지 않지만 그렇지 및 개체가 아닌 경우은 Freezable InvalidOperationException 발생합니다 (정지의 "remarks" 섹션()를 참조). 따라서 CanFreeze은 예외 위험없이 Freeze()를 호출 할 수있는 옵션입니다.

Freeze() 호출로 인해 예외가 발생하는 경우가 있습니다. Freeze() 기준에서 직접 인용 : 데이터 특성을 결합 그것은 애니메이션이나있다

  • 다음 조건 중 하나가 개체에 대한 해당하는 경우

    당신이 된 Freezable 개체 을 동결 수 없습니다 .

  • 동적 리소스 에 의해 설정된 속성이 있습니다. 동적 리소스에 대한 자세한 내용은 , 리소스 개요를 참조하십시오.

  • 이 고정되지 않는 Freezable 하위 개체가 포함되어 있습니다.

+0

+1 예. 그렇다면 필요한가요? 문제가 언제 제기 될 것입니까? SolidColorBrush의 새 인스턴스를 만드는 경우? 아마도 그렇지 않습니다. 내 게시물에 쓴 것처럼, MS는 PresentationOptions : Freeze (값을 true로 설정하면)를 구현하지 않습니다. 내 질문은, 거기에 함정이 있다면, 아마도 내 질문은 비특이적이다. 어쨌든 대답 주셔서 감사합니다. – HCL

+0

조건부로 호출 된 경우 Freeze()로 예외를 방지 할 수있는 몇 가지 사례를 인용하여 내 대답이 업데이트되었습니다 (조건을 CanFreeze로 설정). – andyp

+0

얼어 붙을 수있는 컨트롤 목록을 제공해 주시겠습니까? –

관련 문제