2010-12-23 2 views
1

캔버스에 사용자 정의 사용자 정의 컨트롤이 수백 가지가 될 수있는 응용 프로그램을 작성 중입니다. 그것들 모두는 스크린 주위로 드래그 될 수 있고, 적어도 하나의 다른 사용자 컨트롤에 모든 것을 연결하는 선들이있다. 250 개의 사용자 정의 컨트롤에 도달하면 프레임 속도가 10 이하로 떨어지면서 성능이 크게 떨어지기 시작합니다.수백 개의 별도 사용자 정의 사용자 정의 컨트롤을 사용하여 캔버스의 성능을 최적화하는 방법

이러한 상황에서 성능을 최적화하는 방법에 대한 모범 사례가 있습니까? 문제는 한 번에 캔버스의 깎아 지른 컨트롤에있는 것 같습니다.

감사합니다.

~ 스티브

답변

0

불행히도 아니 ... 그것은 시스템 자원 지원 문제가된다.

VirtualizingStackPanel과 마찬가지로이 문제를 해결하기위한 한 가지 방법은 가상화를 사용하는 것입니다. 이렇게하면 시각적 트리에서 항목을 제거하고 필요한 항목을 참조해야하는 시점이됩니다. 항목을 렌더링하지 않으면 필요한 시스템 리소스가 크게 줄어 듭니다. 모든 항목을 주어진 시간에 렌더링해야하는 경우 해당 시점에 시스템 자원 확보 문제가됩니다. 통제력을 가능한 한 작게 유지하고 시스템에 과세되고있는 것과 같은 사항을 최소한으로 유지하십시오.

+0

메인 캔버스의 모든 항목 (일반적으로 약 2/3ds)에서 수동 루프를 수행하고 visibility.collapsed를 수행했습니다. 나는 데이터 바인딩을 통해 아무것도 배치하지 않았으므로 가상화 스택 패널을 사용할 수 없었습니다. 시각적 트리에서 항목을 확실히 제거하는 방법이 있습니다. –

관련 문제