Есть ли эффект пишущей машинки WPF? - PullRequest
1 голос
/ 07 августа 2010

Есть ли в WPF эквивалент эффектов Flash для пишущей машинки?

Ответы [ 2 ]

6 голосов
/ 07 августа 2010

ОК, я заставил это работать!

private void TypewriteTextblock(string textToAnimate, TextBlock txt, TimeSpan timeSpan)
    {
        Storyboard story = new Storyboard();
        story.FillBehavior = FillBehavior.HoldEnd;
        story.RepeatBehavior = RepeatBehavior.Forever;

        DiscreteStringKeyFrame discreteStringKeyFrame;
        StringAnimationUsingKeyFrames stringAnimationUsingKeyFrames = new StringAnimationUsingKeyFrames();
        stringAnimationUsingKeyFrames.Duration = new Duration(timeSpan);

        string tmp = string.Empty;
        foreach(char c in textToAnimate)
        {
            discreteStringKeyFrame = new DiscreteStringKeyFrame();
            discreteStringKeyFrame.KeyTime = KeyTime.Paced;
            tmp += c;
            discreteStringKeyFrame.Value = tmp;
            stringAnimationUsingKeyFrames.KeyFrames.Add(discreteStringKeyFrame);
        }
        Storyboard.SetTargetName(stringAnimationUsingKeyFrames, txt.Name);
        Storyboard.SetTargetProperty(stringAnimationUsingKeyFrames, new PropertyPath(TextBlock.TextProperty));
        story.Children.Add(stringAnimationUsingKeyFrames);

        story.Begin(txt);
    }

Но есть ли способ заставить персонажей исчезать?

0 голосов
/ 07 августа 2010

Под эффектами пишущей машинки вы подразумеваете строку, отображаемую буква за буквой?

Вы можете добиться аналогичного эффекта с помощью объекта StringAnimationUsingKeyframes , однако вам придется вводить каждое значение строки вручную.

Чтобы создать этот эффект автоматически, вам нужно написать собственный анимационный объект, скорее всего, основанный на StringAnimationBase class.

...