2011-11-03 4 views
0

고해상도 디스플레이 (1920x1080)에서 전체 화면으로 실행되는 응용 프로그램이 있습니다. 화면의 약 25 %가 화면 전체에서 이미지를 스크롤하는 StackPanel입니다. (X 위치는 이중 애니메이션으로 애니메이션 됨)WPF로 StackPanel 성능이 좋지 않습니다.

스크롤이 매우 어둡고 불안정하며 눈에 띄는 부분이 있습니다. 이것은 Win7 64 비트를 실행하는 새로운 고급형 게임 랩톱에서 실행됩니다.

왜 성능이 좋지 않은지 이해할 수 없습니다. 내가 뭔가 잘못하고 있는거야? 이런 종류의 애니메이션이 CPU 또는 GPU에서 실행됩니까? 화면 전체에서 이미지를 스크롤하는 똑똑한 방법이 있습니까?

+2

코드를 표시 할 수 있습니까? 이미지의 종류는 무엇입니까? 이런 일이 발생하면 CPU 사용량이 올라갈 것 같습니까? 신청서를 프로파일 링 해 보셨습니까? – svick

+1

왜 StackPanel입니까? 그리드 또는 캔버스로 시도해보십시오. –

+0

StackPanel에 몇 개의 아이템이 있습니까? 그리고 당신은 어떤 종류의 UI Virutalization을 사용하고 있습니까? – Rachel

답변

0

WPF는 하드웨어 가속화가 가능하지만 최신 비디오 카드 드라이버에서만 가능합니다. 선상에 놓인 드라이버 중 일부는 소프트웨어 렌더링으로 되돌아 가서 정말 느리고 까다 롭습니다. 찢어짐에 관해서는, 그것은 V-Sync 라 불리는 일반적인 비디오 카드 설정입니다. 나는 비디오 카드 드라이버를 독점 드라이버 (nVidia, AMD 등)로 업데이트하고 카드에서 수직 동기화를 활성화하려고합니다.

here으로 설명한 방법을 사용하여 소프트웨어 또는 하드웨어 렌더링에 해당하는지 확인할 수 있습니다.

그래도 문제가 해결되지 않으면 내가 생각할 수있는 유일한 다른 가능성은 애니메이션/렌더링이 GUI에 동기화되지 않는다는 것입니다.

자세한 내용은 this msdn article을 참조하십시오.

0

이 문제를 해결할 수있는 트릭은 페이지에 3D 개체를 배치하고 측면을보고이를 회전시키는 것입니다. 4 개의 이미지가 각면에 이미지 세트가있는 큐브가 있습니다. 예 회전에는 여전히 GPU와 프로세서 시간이 필요하지만 WPF 애니메이션에 의해 내부적으로 처리되므로 일단 설정된 롤링 뒤의 코드와 상호 작용할 필요가 없습니다.

관련 문제