programing

C# / WPF에서 애니메이션을 중지하는 방법

jooyons 2023. 4. 20. 21:13
반응형

C# / WPF에서 애니메이션을 중지하는 방법

이런 게 있어요.

bar Progress(바 프로그레스).Begin Animation(Range Base).Value Property, 새로운 Double Animation()bar Progress(바 프로그레스).값, dNextProgressValue,new Duration(Time Span).From Seconds(기간);

이제 어떻게 그 애니메이션을 멈출 수 있을까요?DoubleAnimation)? 제가 이걸 하고 싶은 이유는 새로운 애니메이션을 시작하고 싶기 때문입니다(이것은 효과가 있는 것 같지만, 말하기 어렵기 때문에).그리고 최종적으로 마지막 애니메이션을 정지하고 싶기 때문입니다.

중지하려면 전화하십시오.BeginAnimation두 번째 인수가 로 설정된 상태에서null.

스토리보드를 사용하여 애니메이션을 제어하는 경우 애니메이션을 제어 가능한 것으로 설정하려면 두 번째 파라미터를 true로 설정해야 합니다.

public void Begin(
    FrameworkContentElement containingObject,
    **bool isControllable**
)

Begin Animation을 중지하려면 두 가지 방법이 있습니다.첫 번째는 두 번째 파라미터를 null로 설정하고 Begin Animation을 다시 호출하는 것입니다.이렇게 하면 속성의 모든 애니메이션이 제거되고 값이 기본 값으로 돌아갑니다.

이 값을 사용하는 방법에 따라서는 원하는 동작이 아닐 수 있습니다.두 번째 방법은 애니메이션 Begin Time을 null로 설정하고 Begin Animation을 호출하는 것입니다.그러면 해당 애니메이션이 제거되고 값이 현재 위치에 유지됩니다.

DoubleAnimation myAnimation = new Animation();
// Initialize animation
...

// To start
element.BeginAnimation(Property, myAnimation);

// To stop and keep the current value of the animated property
myAnimation.BeginTime = null;
element.BeginAnimation(Property, myAnimation);
<Trigger.EnterActions>
       <BeginStoryboard x:Name="myStory">
       .........
       </BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
       <StopStoryboard BeginStoryboardName="myStory"/>
</Trigger.ExitActions>

두 개의 명령어를 사용해야 했던 제 경우, xaml에는 트리거를 실행하는 버튼이 있고, 그 트리거가 스토리보드 애니메이션을 실행합니다.

다음 코드를 사용하여 애니메이션을 중지하는 버튼을 눌렀습니다.

MyBeginStoryboard.Storyboard.Begin(this, true);
MyBeginStoryboard.Storyboard.Stop(this);

마음에 안 들지만 여기서 진짜 잘 돼.한번 해봐!

기준값이 다시 유효값이 되도록 하려면 애니메이션이 속성에 영향을 미치지 않도록 해야 합니다.스토리보드 애니메이션을 사용하여 이를 수행하는 세 가지 방법이 있습니다.

  • 애니메이션의 FillBehavior 속성을 Stop으로 설정합니다.
  • 스토리보드 전체를 삭제합니다.
  • 개별 속성에서 애니메이션 제거

MSDN에서

방법: 스토리보드로 애니메이션 한 후 속성 설정

StoryBoard에 애니메이션을 배치합니다.스토리보드의 Begin()과 Stop()을 호출하여 애니메이션을 정지합니다.

다음 코드를 사용할 수 있습니다.

[StoryBoardName].Remove([StoryBoardOwnerControl]);

언급URL : https://stackoverflow.com/questions/20298/how-to-stop-an-animation-in-c-sharp-wpf

반응형