난 내가Storyboard.RepeatBehavior 비효율적
private void Repeat_Click(object sender, RoutedEventArgs e)
{
if (globalStoryboard.Children.Count != 0)
{
if (globalStoryboard.RepeatBehavior == RepeatBehavior.Forever)
globalStoryboard.RepeatBehavior = new RepeatBehavior(1.0);
else
globalStoryboard.RepeatBehavior = RepeatBehavior.Forever;
}
}
을 반복해야 사용하고 스토리 보드를 날씨를 전환하는 버튼을 추가하거나하지 않은 프로그램이하지만 전혀 작동하지 않습니다. 애니메이션이 첫 번째 재생의 끝에 도달하면 Completed 이벤트가 실행되고 (그렇게해서는 안됨) 애니메이션이 중지됩니다 (그 중 하나). 나는 아무 쓸데없는 몇 가지 다른 접근 방식을 시도하고 내 모든 검색은 그것이 고립 된 문제임을 나타내는 것 같습니다.
내가 뭘 잘못하고 있니?
다음은 스토리 보드에 애니메이션을 추가하는 장소 중 하나입니다. 이 부분을 잘게 잘라낸 Storyboard를 리턴 한 다음 GlobalStoryboard의 하위 항목을 만듭니다. 나는 이미 GlobalStoryboard를 함수에 전달하고 직접 애니메이션을 추가하여 중간 스토리 보드를 제거하려고했습니다. 문제를 해결하지 못했습니다.
double last = ((data[0] - min)/delta) * angle;
for (double k = 1.001; k < data.Count; k++)
{
double val = ((data[(int)k] - min)/delta) * angle;
DoubleAnimation doubleAnimation = new DoubleAnimation();
doubleAnimation.From = last;
doubleAnimation.To = val;
doubleAnimation.Duration = new Duration(TimeSpan.FromSeconds(1));
doubleAnimation.BeginTime = TimeSpan.FromSeconds(k - 1);
s.Children.Add(doubleAnimation);
Storyboard.SetTargetName(doubleAnimation, "AxisRotation" + index);
Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath("Angle"));
last = val;
}
스토리 보드를 종료하지 않으시겠습니까? –
Storyboard가 시작된 후에 고정되어 있기 때문입니다. 아마 당신은 그것을 대체해야합니다. – LPL
사용자가 반복 동작을 토글 할 때마다 새로운 스토리 보드를 만드시겠습니까? Yikes, 내가 원하는 해결책이 아닙니다. – Kyjibo