2

WPFにFlashのタイプライター効果に相当するものはありますか?

4

2 に答える 2

7

OK、うまくいきました!

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);
    }

しかし、文字をフェードインさせる方法はありますか?

于 2010-08-07T19:59:14.523 に答える
0

タイプライター効果とは、文字列が文字ごとに表示されることを意味しますか?

StringAnimationUsingKeyframesオブジェクトでも同様の効果を得ることができますが、すべての文字列値を手動で入力する必要があります。

この効果を自動的に作成するには、おそらくStringAnimationBaseクラスに基づく独自のアニメーション オブジェクトを作成する必要があります。

于 2010-08-07T15:28:36.200 に答える