2009-05-18 4 views
7

Canvas 내부에서 생성 된 일련의 직사각형이 있으며 XAML의 ScrollView> Canvas> VirtualizingStackPanel> Rectangle 순서로 중첩됩니다.WPF 캔버스 가상화

가상화가 지원되는 시나리오가 Microsoft에 관한 정보가 거의없는 것 같습니다. 오류가 발생하지 않는 경우 표준 StackPanel처럼 처리합니다.

전체 캔버스에서 총 800 개 중 한 번에 대략 60 개의 사각형이 화면에 표시되어 있으므로 약 5 분의 로딩 시간은 허용 할 수 없을 정도로 느립니다.

ScrollView를 제거하지 않아도 효과를 향상시키지 못했지만 (스크롤 막대를 제거하는 것 외에는 성능이 향상되지 않았 음) 다른 중첩 요소를 제거하면 그물 효과가 아무 것도 표시되지 않거나 표시되지만 여전히 느립니다.

가장 좋은 해결책 지금까지 무료 프리웨어 코드 예제 VirtualizedCanvas를 발견했지만 매우 제한적이며 내부에 중첩 된 항목을 지원하지 않습니다. 실제로 입력 할 수있는 유일한 입력은 UI 요소 모음입니다.

이 솔루션은 기본적으로 데이터 바인딩을 무시하고 완성 된 Canvas를 다시 전달해야합니다. 이렇게하면 기존 코드와 변환기가 모두 쓸모 없게되고 구현하기위한 주요 재 작업이 될 것입니다.

단순히 화면 항목에 60 개만 그리게하려면 가상화를 클립하는 방법이 있습니까? 이 예제 밖으로

답변