2011-01-01 7 views
0

Silverlight WP7 앱과 내 페이지에서 화면을 가로 질러 슬라이드하려는 이미지가 있습니다. 이 일을하는 가장 좋은 방법은 무엇입니까? 나는이 사실을 빨리 썼지 만 UI는 전체 메서드가 완료 될 때까지 업데이트되지 않습니다.화면의 일부분에서 이미지를 이동하는 가장 좋은 방법은 무엇입니까?

private void SpinImg(Image img, double left) { 
     for(int i = 1; i <= 10000; i++) { 
      img.Margin = new Thickness(left, img.Margin.Top + 1, 0, 0); 
      if(img.Margin.Top > 314) { 
       //move it to the top 
       img.Margin = new Thickness(left, -105, 0, 0); 
      } 
      int wait = 1000/i; 
      Thread.Sleep(wait); 
     } 
    } 

답변

2

Storyboard를 사용하십시오. 하드웨어 가속이 가능하며 렌더링 스레드에서 모두 발생하므로 반복해서 위치를 계속해서 업데이트하는 것보다 훨씬 뛰어난 성능을 경험할 수 있습니다.

Storyboard는 프레임 기반이 아닌 시간 기반이라는 이점이 있으므로 "이미지를 0.5 초 만에 옮길 수 있습니다."라고 쉽게 선언 할 수 있습니다.

0

Thread.Sleep은 모든 UI 처리를 고정시키고 Dispatcher 클래스를 사용합니다.

관련 문제