2012-04-26 3 views

답변

10

MSDN에 의해 ​​지정된 :

가 변형하고 FrameworkElement 클래스를 제공하는 두 개의 특성 중 하나에 적용하는 FrameworkElement에 변환을 적용 만들려면 LayoutTransform - 그 레이아웃 전에인가 변환 패스. 변환이 적용된 후, 레이아웃 시스템은 요소의 변형 된 크기와 위치를 처리합니다. RenderTransform - 요소의 모양을 수정하지만 레이아웃 단계가 완료된 후에 적용되는 변환입니다. LayoutTransform 속성 대신 RenderTransform 속성을 사용하면 성능 이점을 얻을 수 있습니다. 어떤 속성을 사용해야합니까? 그것이 제공하는 성능상의 이점 때문에, 특히 애니메이션 된 Transform 개체를 사용할 때 가능한 한 RenderTransform 속성을 사용하십시오. 크기 조절, 회전 또는 기울이기를 수행 할 때 LayoutTransform 속성을 사용하고 요소의 변형 된 크기에 맞게 요소의 부모가 필요합니다. LayoutTransform 속성과 함께 사용하면 TranslateTransform 개체가 요소에 영향을주지 않는 것으로 보입니다. 이는 레이아웃 시스템이 변환 된 요소를 처리의 일부로 원래 위치로 반환하기 때문입니다.

그리고 또한 : 당신은 레이아웃 시스템에 의한 전체 과정을 필요로하지 않는 시나리오를 호출 할 경우

LayoutTransform은 애플리케이션 성능 저하가 발생할 수 있습니다. Panel의 Children 컬렉션에 LayoutTransform을 적용하면 레이아웃 시스템에서 새 패스를 트리거하고 모든 화면상의 객체를 다시 측정하고 재정렬합니다. 전체 응용 프로그램 사용자 인터페이스 (UI)를 업데이트하는 경우이 기능이 필요한 것일 수 있습니다. 그러나 전체 레이아웃 단계가 필요하지 않은 경우 레이아웃 시스템을 호출하지 않는 RenderTransform 속성을 사용하므로이 시나리오에서는 일반적으로 더 나은 선택입니다.

+1

매우 도움이됩니다. 감사! –

12

GridTransforms가 CPU에서 수행되는 반면, glenderkite의 답변에 추가하려면 RenderTransforms도 GPU에서 처리 할 수 ​​있습니다.

+0

중요한 구별점, 고맙습니다. –