저는 약 20000 개의 사각형을 렌더링하는 WPF (.NET 3.5) 컨트롤이 있습니다. 이 MyControl은 Canvas에서 파생되었습니다. 나는이 같은 MyControl에 자식으로 MyVisualsHost을 가하고있어 :DrawingVisuals 호스트 및 레이아웃 성능
public class MyControl : Canvas
{
private readonly MyVisualsHost host = new MyVisualsHost();
private List<MyVisual> items = Enumerable.Range(0, 20000).Select(...).ToList();
public MyControl()
{
this.Children.Add(host);
}
}
그래서, 나는 그리드에 또는 Window.Content로 퍼팅하고 있는데 그것은 (1 초) 매우 빠른 항목을 렌더링합니다. 창 크기를 조정할 때 사각형이 다시 배열되고 다시 그려집니다 (1 초 단위).
하지만 MyControl와 함께 XAML에 콤보 상자를두고있을 때 :
<Grid>
<ComboBox/>
<MyControl />
</Grid>
를 재 배열에 렌더링하는 것은 아래로 5-10초에 속도가 느려집니다.
누구나 그것에 대해 알고 있나요? 미리 감사드립니다.
P. 데모 프로젝트를 다운로드 할 수 있습니다 Here