티스토리 뷰

IT/C#

[WPF] WPF에는 트리 깊이 제한이 존재합니다. (VisualTree Stackvoerflow)

주인장 진빼이

아주 큰 조직도를 트리뷰 컨트롤로 구성해보려고 했으나 실패했습니다.

몇번째 level에 튕기는지 직접 테스트 해보시길 바랍니다.

Backend 데이터로는 900깊이 이상으로 삽입이 가능하나, 화면에 보여지는 곳에서 제한이 걸리어 튕기게 됩니다.

 

트리 깊이 제한은 존재하지만, 재밌는건 아이템 요소의 개수는 제한이 없다는 것입니다.

 

제한은 ItemTemplate에 따라 상이할 수 있지만, 보통 150 - 180단계가 최대치입니다.

정확히 말하자면 트리 깊이 제한보다는 WPF Visual Tree Stack이 Over되어 튕기는 것입니다.

Visual Tree에 그려지는 Element들이 약 180단계의 Stack이 된 경우 튕겨버리게 됩니다. (.Net Framework 4.7.2 기준)

 

이는 Virtualization, UI Virtualization(가상화)을 하더라도 튕깁니다.

결국 큰 조직도를 구성하려면 Canvas Virtualization을 이용하는 것 밖에 없습니다.

 

관련되어 간단한 샘플 프로젝트를 올립니다.

 

DefaultTreeVirtual.zip
2.37MB

 

 

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함