내가 WPF 애니메이션을 부드럽게하는 방법은 무엇입니까?
WPF 애니메이션
스무딩에 어려움을 겪고 있어요 사실 내 애니메이션 코드는 다음과 같다 :private void AnimateX (FrameworkElement element, double XMoveStart, double XMoveEnd, int secondX)
{
SineEase eEase = new SineEase();
eEase.EasingMode = EasingMode.EaseInOut;
Storyboard sb = new Storyboard();
DoubleAnimation daX = new DoubleAnimation(XMoveStart, XMoveEnd, new Duration(new TimeSpan(0, 0, 0, secondX, 0)));
daX.EasingFunction = eEase;
Storyboard.SetTargetProperty(daX, new PropertyPath("(Canvas.Left)"));
sb.Children.Add(daX);
element.BeginStoryboard(sb);
}
위의 코드는 사인 쉽게 수평으로 객체를 이동하는 방법이다. 한 물체 만 움직이면 괜찮습니다. 그러나 두 개 이상의 객체가 함께 움직일 때마다 (이전 애니메이션이 아직 완료되지 않은 상태에서 다른 객체의 AnimateX 메소드 호출) 애니메이션이 불안해지기 시작합니다. jittery로 말하자면, 객체는 애니메이션 과정 중에 흔들리는 종류입니다.
컴퓨터가 소프트웨어 렌더링으로 애니메이션을 수행하고 있는지 또는 하드웨어가 가속화되어 있는지 알고 계십니까? –
네, RenderCapability로 테스트하기 만하면 하드웨어 가속입니다. – nan
주 스레드가 Invokes를 사용하여 다른 작업을 수행하고 있습니까? 애니메이션은 주 스레드에서 실행되며 다중 스레드 응용 프로그램을 사용하는 경우 UI에서 다른 스레드를 업데이트하는 데 주 스레드가 사용 중일 수 있습니다. –