문제

그리드 열 크기 조정과 관련된 WPF에 알려진 성능 문제가 일반적으로 있습니까?

열에서 특정 작업을 수행 해야하는 응용 프로그램이 있지만 모든 다른 솔루션의 경우 열 크기 조정이 느려집니다. 이것은 내 목록에 일반적으로 1000 개가 넘는 요소가있을 때 적용되지만 WPF에 너무 많지 않다고 가정합니다.? 그래서; 일반적인 질문은 느린 칼럼 크기 조정을 경험했는지 여부와이를위한 솔루션을 찾았는지 여부입니다. 원인은 무엇입니까?

내 특정 사례에 대한 자세한 내용 :

열에 두 가지 다른 것들을 가질 수 있습니다. Combobox 또는 TextBlock. Combobox는 전체 열을 채우고 열 크기 조정에서 따라야하며 텍스트 블록으로 열의 빈 영역을 클릭하면 행을 선택해야합니다. 이것은 문제가있는 곳입니다. 모든 솔루션에 대해서는 열 크기 조정이 느려집니다. 내가 찾은 크기를 매끄럽게 만드는 유일한 방법은 Orientation = "Horizontal"으로 외부에 스택 패널을 추가하는 것입니다. 그러나 위에서 설명한 스타일을 달성 할 수 없습니다.

몇 가지 관찰은 다음과 같습니다.

  • 목록의 항목에 스타일 HorizontalContentalIngment = "Stretch"를 추가하면 Comboboxes가 늘어나고 TextBlocks는 클릭 가능하지만 열 크기도 느리게됩니다.
  • 배경 = "투명"을 스택 패널 또는 내부에 삽입 한 요소에 "투명"을 추가하면 문제가 해결되지만 크기를 느리게 만듭니다.
  • 속성 방향 = "수평"이있는 외부 스택 패널을 추가하면 크기 조정이 매끄럽지 만 설명대로 스타일을 적용 할 수는 없습니다.
도움이 되었습니까?

해결책

ListView에서 요소를 가상화 해 보셨습니까? 가상화 할 때 가상화 패널은보기에있는 요소에 대한 비주얼 만 생성합니다. 이를 통해 언급 한 것처럼 성능 문제없이 많은 품목을 가질 수 있습니다. 보다 VirtualizingStackPanel 자세한 사항은. 또한 레이아웃 시스템. 자신만의 가상화 패널을 만들 수 있습니다. Google에서 "Virtualizing+WPF"를 찾으면 캔버스, 랩파넬 등을 가상화하는 데 많은 히트가 있습니다.

이게 도움이 되길 바란다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top