2013-02-04 4 views
3

I 종속성 속성 HoverHeight을 registrates 맞춤 사용자 제어를 갖는다. 이 컨트롤을 사용하는 페이지에서 애니메이션 종속성 속성

, 나는 HoverHeight 속성에 애니메이션해야 Storyboard을 만듭니다

<Page ...> 
    <Page.Resources> 
     <Storyboard> 
      <DoubleAnimationUsingKeyFrames Storyboard.TargetName="virtualPointer" Storyboard.TargetProperty="HoverHeight"> 
       <LinearDoubleKeyFrame Value="1.0" KeyTime="0:0:0"/> 
       <LinearDoubleKeyFrame Value="0.0" KeyTime="0:0:1"/> 
       <LinearDoubleKeyFrame Value="1.0" KeyTime="0:0:2"/> 
       <LinearDoubleKeyFrame Value="0.0" KeyTime="0:0:3"/> 
       <LinearDoubleKeyFrame Value="1.0" KeyTime="0:0:4"/> 
      </DoubleAnimationUsingKeyFrames> 
      <!-- other DoubleAnimationUsingKeyFrames --> 
     </Storyboard> 
    </Page.Resources> 
    <!-- ... --> 
    <local:VirtualPointer Name="virtualPointer" HoverHeight="0.5"/>  
</Page> 

스토리 보드가 예상대로 작동 다른 애니메이션이 포함되어 있습니다. 그러나 스토리 보드를 시작하면 HoverHeight 값이 변경되지 않습니다. OnHoverHeightChanged 처리기가 호출되지 않으며 새 값을 가진 변환기도 호출되지 않습니다. OnHoverHeightChanged 처리기를 차례로 호출하는 속성 설정자로 새 값을 설정할 수 있으므로 애니메이션에 문제가있을 수 있습니다.

스토리 보드를 시작할 때 출력 또는 예외가 생성되지 않습니다.

여기에 뭔가가 있습니까? 사용자 지정 종속성 속성을 어떻게 애니메이트 할 수 있습니까?

+0

두 코드 세그먼트는 어디에 있습니까? 스타일이나 다른 곳에 있습니까? – Colin

+0

클래스 정의가 별도의 파일에 있습니다. ''는 윈도우에있는 그리드의 하위 요소입니다. ''은'x : Key'를 제공하는''에 정의되어 있습니다. –

답변

9

애니메이션의 EnableDependentAnimation 속성을 True로 설정하십시오.

기본적으로 Windows 8에서는 종속 애니메이션이 전혀 실행되지 않습니다. 기본적으로 이는 독립적 인 애니메이션 (예 : GPU 변형을 수행하는 애니메이션)이므로 UI ​​스레드에서 변경 알림을받을 수 없습니다. 적어도 그것은 나의 이해입니다.

+0

대단히 감사합니다. 이 속성은 약간 이상하게 보입니다. 결국 UI 요소의 속성을 애니메이션없이 만들 수 있습니다. –

+0

감사합니다. 스토리 보드가 작동하지 않는 이유를 파악하기 위해 많은 시간을 낭비했습니다. – Saurabh3321