2012-01-19 2 views
0

개체를 처음 위치에서 다른 위치로 변환하기 위해 스토리 보드를 개발했지만 두 번째로 스토리 보드를 트리거하거나 다른 스토리 보드를 호출하면 개체가 항상 원래 위치에서 변환됩니다. 새 번역본은 첫 번째 번역 후에 설립되었습니다. 그것을 바꾸는 방법?오브젝트를 현재 위치에서 다른 위치로 어떻게 변환합니까?

내 코드 :

da.FillBehavior = FillBehavior.HoldEnd; 

는 다음 상단 또는 왼쪽에 da.From 속성을 설정 : 당신은 HoldEnd에 (예를 들면 DoubleAnimation 등) 애니메이션의 FillBehavior를 설정해야

TranslateTransform animatedTranslateTransform = new TranslateTransform(); 
this.RegisterName("slide", animatedTranslateTransform); 
TransformGroup transformGroup = new TransformGroup(); 
transformGroup.Children.Add(animatedTranslateTransform); 
_button.RenderTransform = transformGroup; 

//translate Y 
DoubleAnimation slideDown = new DoubleAnimation(20, TimeSpan.FromSeconds(1.0)); 
Storyboard.SetTargetName(slideDown, "slide"); 
Storyboard.SetTargetProperty(slideDown, new PropertyPath(TranslateTransform.YProperty)); 
storyBoardSlideDown.Children.Add(slideDown); 
+2

몇 가지 코드를 보여주십시오. 너 뭐 했니? 너 뭐 해봤 니? 당신이 기대하는 것처럼 작동하지 않는 것은 무엇입니까? 그 대신에 무엇을하고 있습니까? – cdeszaq

답변

2

DoubleAnimation.To 대신 DoubleAnimation.By을 사용하십시오. MSDN에서 :

애니메이션 속성의 기준 값 애니메이션 또는 인으로부터 진행

그 값의 합에 의해 특성

쓰기에 의해 지정된 값에 대한 이전의 애니메이션의 출력값

DoubleAnimation slideDown = 
    new DoubleAnimation { By = 20, Duration = TimeSpan.FromSeconds(1.0) }; 
+0

완벽한! 그게 바로 제가 찾고 있던 것입니다. 고마워. – faha

0

캔버스 또는 요소 개체의.

개체가 가로 및 세로로 이동할 수있는 경우 스토리 보드에 두 개의 DoubleAnimation 개체가 연결되어 있어야합니다.

+0

FillBehavior 속성의 기본값은 이미 HoldEnd입니다. 내 샘플 코드에서 20pt 아래쪽에있는 객체가 움직이고 애니메이션 후에도 위치를 유지하지만 애니메이션을 다시 트리거하면 20px 아래쪽으로 이동합니다 (초기 위치에서 40px). 초기 위치가 아닌 새로운 위치로 이동). – faha

관련 문제