다루는 것은 여기에 시나리오의 :매우 낮은 애니메이션 프레임 속도
내가 주로리스트 박스를 포함하는 많은 뷰 시리즈를 가지고있다. 목록 상자, 일부에는 많은 양의 데이터가 있고 일부는 아주 적습니다. 현재 첨부 된 비헤이비어에는 본질적으로 새로운 내용이 이러한보기 (ContentPresenter
)의 컨테이너에로드 될 때 감지하여 왼쪽 또는 오른쪽으로 200px만큼 컨테이너를 오프셋하는 간단한 XAML 스토리 보드를 트리거합니다 또한 불투명도를 0 % (0ms)로 낮춘 다음 100ms 이상이면 불투명도를 100 %로 복원하고 오프셋을 0px로 줄임으로써 '보기로 미끄러지 듯'효과를냅니다.
자, 문제는 :
이 애니메이션의 프레임 속도는 크게 다만 완료 될 때까지 1 개 프레임에서 지체하는, 무섭게 어디 과민로 원활하게 전환에서 다릅니다. 이것은 거의 새로운 뷰를로드하고 그 안에 모든 것을 렌더링 한 다음 더 멀리해야한다는 사실 때문에 거의 확실합니다. 많은 데이터가있는 목록은 더 많은 렌더링 시간을 필요로합니다. 그런 다음 애니메이션의 성능에 큰 영향을 미치는 위치 변경을 애니메이션화하려고 할 때 모든 일이 발생합니다.
내 질문 :
는 WPF 여기
을 처리하기 위해 화면을 가로 질러 몇 픽셀을 이동하는 것과 같은 간단한 일이 너무 그래픽 집약적 인 저를 충격 애니메이션 자체의 원유 표현입니다 :
성능을 향상시키기 위해 WPF에서 집중적 인 애니메이션을 다루는 데있어 근본적인 모범 사례가 있습니까? 부스트 성능을 추가 할 때 사소한 변경 사항이 있습니까? WPF는 애니메이션 작업에만 끔찍한 일이며 우리는이를 처리해야합니다.
'ListView'에서'가상화'가 가능합니까? 'VirtualizingStackPanel'을 들여다 보지 않으면. – XAMlMAX
예, 그들은 모두 가지고, 그래서 내 추측은 일부 목록 상자 항목의 데이터 형식은 때로는 심지어 몇 가지 표시가 충분히 느려지는 것만 큼 복잡하다는 것입니다. – Logan
가상화가 ListView에서 작동하는지 확인하고, 나는 과거에 문제가 있었다. 'ItemsSource'에 대해 보통 Binding을 사용합니까, 아니면'CollectionViewSource'를 사용합니까? 또한 포함 된 가상화를 사용하여 ListView의 'XAML'을 게시 할 수 있습니까? – XAMlMAX