2012-12-11 3 views
0

아래 코드가 변경되지 않는 이유 ScaleY ~ 1?WPF에서 ScaleY 애니메이션

var transform = new ScaleTransform { ScaleY = 0 }; 
    var story = new Storyboard(); 
    var animation = new DoubleAnimation { 
        Duration = new Duration(new TimeSpan(0)), To = 1 }; 
    Storyboard.SetTarget(animation, transform); 
    Storyboard.SetTargetProperty(animation, new PropertyPath("ScaleY")); 
    story.Children.Add(animation); 
    story.Begin(); 

내가 간접적으로 transform를 사용 : 일부 UIElements 렌더링과 DependencyProperty에 보관을 위해 사용.

+1

당신은 실제로 어디에서나 *'transform'을 사용하고 있습니까? 예 : 요소의 'RenderTransform'에 할당? –

+0

@JoeWhite, 제 편집을보세요. – AndreyAkinshin

답변

1

스토리 보드를 삭제하고 BeginAnimation을 직접 호출하면 효과가 있습니까? 애니메이션의 FillBehaviorHoldEnd의 값이있을 경우에만 어떤 영향을 미칠 것이라는 점을

var transform = new ScaleTransform { ScaleY = 0 }; 
var animation = new DoubleAnimation { Duration = TimeSpan.Zero, To = 1 }; 

transform.BeginAnimation(ScaleTransform.ScalyYProperty, animation); 

참고. 그렇지 않으면 애니메이션 속성은 즉시 로컬 값 (여기서는 0)으로 되돌아갑니다. 다행히도 FillBehavior의 기본값은 HoldEnd입니다.

물론 transform어딘가에으로 사용되어야합니다.

관련 문제