2011-12-24 3 views
0

WP 7.5 앱 두 개의 스토리 보드 애니메이션이 있습니다. 하나는 이미지에, 다른 하나는 텍스트입니다.애매하고 눈에 보이지 않게 사용하는 중 ... 나는이 일을 올바르게하고 있습니까?

문제 1 : 다음 페이지로 이동하여 뒤로 이동하면 이미지와 텍스트가 깜박입니다. Solution1

: 그래서 나는 OnNavigateFrom를 추가하고 명시 적으로 애니메이션을 중지하고 또한 0

Issue2에 애니메이션에 관련된 모든 속성을 다시 : 나는 그것을 잠금을 해제 할 때을 이제 화면 잠금 모드를 간다 말하고 OnNavigatedFrom에서 요소 중 하나의 불투명도를 0으로 설정했기 때문에 요소가 숨겨져 있으며 사용자가 다음 페이지로 이동할 때까지 실제로 표시되어야합니다.

해결책 2 : 아래 코드와 같이 어둡게 처리되고 언박 처리 된 처리기를 처리하고 응용 프로그램이 모드를 흐리게 표시할지 여부를 확인하기 위해 플래그를 추가했습니다. 애니메이션을 중지하거나 속성을 재설정하지 마십시오.

public class Page2 :PhoneApplicationPage 
    { 
     private bool _isObscured = false; 
     public Page2() 
     { 
      (Application.Current as App).RootFrame.Obscured += OnObscured; 
      (Application.Current as App).RootFrame.Unobscured += OnUnobscured; 
      InitializeComponent(); 
     } 

     protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e) 
     { 
      //Stop animations and reset properties only if not going to obscure mode. 
      if (!_isObscured) 
      { 
       //stop animaiton 
       Storyboard1.Stop(); 
       Storyboard2.Stop(); 
       //Reset all transform properties to 0 
       Text1.Opacity = 0; 
       Image1.RenderTransform.SetValue(CompositeTransform.ScaleXProperty, 0.0); 
       Image1.RenderTransform.SetValue(CompositeTransform.ScaleYProperty, 0.0); 
      } 
      base.OnNavigatedFrom(e); 
     } 

     void OnObscured(object sender, ObscuredEventArgs e) 
     { 
      Storyboard1.Pause(); 
      Storyboard2.Pause(); 
      _isObscured = true; 
     } 

     void OnUnobscured(object sender, EventArgs e) 
     { 
      Storyboard1.Resume(); 
      Storyboard2.Resume(); 
      _isObscured = true; 
     } 
    } 

질문 :이 갈 수있는 corret 방법인가, 아니면 더 좋은 방법이 있나요? 이런 방식으로 인증 문제를 제기 할 수 있습니까?

정말 감사드립니다.

답변

0

가장 쉬운 방법은 IsLeave 부울 속성을 추가하고 NavigateTo 메서드를 호출하는 클릭 이벤트에서 true로 설정하는 것입니다. 또한 동일한 기능으로 애니메이션을 중지하십시오.

당신이 돌아올 때 IsLeave 속성에서 애니메이션을 수행할지 여부를 알 수 있습니다.

OnNavigatedTo() 
{ 
     if (IsLeave) 
     { 
      //We come back. Reset animations 
      IsLeave = false; 
     } 
} 

private bool IsLeave = false;

.

ClickEvent() 
{ 
     IsLeave = true; 
     //Permorm all you need with animations. We leave this page 
     NavigationService.NavigateTo() 
} 
+0

정확하게 이해하지 못하겠습니까? 화면 잠금이나 어둡게 처리 할 때 어떻게 도움이 될까요? – oms

+0

이 경우 화면이 잠기면 더 이상 OnNavigatedFrom 메서드에서 불투명도가 변경되지 않습니다. 다시 돌아 오면 모든 요소가 계속 표시됩니다. 그리고 당신의 Solution1은 Issue2를 생산하지 않습니다, 나는 – Ku6opr

+0

을 보았습니다. 나는 그것을 시험해야 할 것이다. 또한 내 NavigationService.NavigateTo()는 내 이미지의 MouseLeftButtonDown을 통한 탐색을 처리하는 customControl 내부에 있습니다. 나는 시도하고 업데이트 할 것이다. 감사. – oms

관련 문제