2014-10-02 26 views
7

मैं WPF और XAML के लिए एक पूर्ण नौसिखिया हूं।पुन: प्रयोज्य एनिमेशन

मैं एक पाठ बॉक्स के लिए एक सरल फीका-इन और फीका-बाहर एनीमेशन बनाया है: -

<Storyboard x:Key="storyFadeInOutTop" Name="storyFadeInOutTop"> 
    <DoubleAnimation From="0" To="1" Duration="00:00:01" 
        Storyboard.TargetName="txtTopCredit" 
        Storyboard.TargetProperty="Opacity"> 
    </DoubleAnimation> 
    <DoubleAnimation From="10" To="0" Duration="00:00:01" BeginTime="00:00:01" 
        Storyboard.TargetName="blurTop" 
        Storyboard.TargetProperty="Radius"> 
    </DoubleAnimation> 
    <DoubleAnimation From="0" To="10" Duration="00:00:01" BeginTime="00:00:05" 
        Storyboard.TargetName="blurTop" 
        Storyboard.TargetProperty="Radius"> 
    </DoubleAnimation> 
    <DoubleAnimation From="1" To="0" Duration="00:00:01" BeginTime="00:00:06" 
        Storyboard.TargetName="txtTopCredit" 
        Storyboard.TargetProperty="Opacity"> 
    </DoubleAnimation> 
</Storyboard> 

मुझे क्या करना चाहते हैं एनीमेशन के lifecyle के भीतर इस स्टोरीबोर्ड कई बार चलाया जाता है।

कुछ की तरह: -

<Storyboard> 
    <!-- (Run my fade-in-fade out with BeginTime of 00:00:00) --> 
    <StringAnimationUsingKeyFrames Duration="00:00:01" BeginTime="00:00:07" 
      Storyboard.TargetName="txtTopCredit" 
      Storyboard.TargetProperty="Text"> 
      <DiscreteStringKeyFrame Value="Game design and concept by" KeyTime="0:0:1" /> 
    </StringAnimationUsingKeyFrames> 
    <!-- (Run my fade-in-fade out again with BeginTime of 00:00:07) --> 
    <StringAnimationUsingKeyFrames Duration="00:00:01" BeginTime="00:00:07" 
      Storyboard.TargetName="txtTopCredit" 
      Storyboard.TargetProperty="Text"> 
      <DiscreteStringKeyFrame Value="Look Ive changed to another credit" KeyTime="0:0:1" /> 
    </StringAnimationUsingKeyFrames> 
    <!-- (etc etc) --> 
</Storyboard> 

मुझे आशा है कि आप मुझे क्या करना है कोशिश कर रहा हूँ का सार समझते हैं। मुझे पता है कि मैं ऊपर के प्रत्येक खंड में स्टोरीबोर्ड में कोड जोड़ सकता हूं लेकिन यह बहुत कठिन होगा। क्या ऐसा करने का कोई शानदार तरीका है?

+0

नोट: ओ.के. इसलिए मैंने स्टोरीबोर्ड को शुरू करने और रोकने के लिए कोड को थोड़ा खोद दिया और इस्तेमाल किया, साथ ही ईवेंट हैंडलर चलाने के अनुक्रम को नियंत्रित करने के लिए। यह जानना अच्छा होगा कि शुद्ध XAML में ऐसा करने का कोई तरीका था या नहीं। –

+2

मुझे लगता है कि आप कोड के साथ इन एनिमेशन को प्रबंधित करने से बेहतर हैं (दुर्भाग्य से)। –

उत्तर

1

आप स्टोरीबोर्ड (inherited from Timeline)

<Storyboard x:Key="storyFadeInOutTop" Name="storyFadeInOutTop" RepeatBehavior="Forever"> 
    <DoubleAnimation From="0" To="1" Duration="00:00:01" 
        Storyboard.TargetName="txtTopCredit" 
        Storyboard.TargetProperty="Opacity"> 
    </DoubleAnimation> 
    <DoubleAnimation From="10" To="0" Duration="00:00:01" BeginTime="00:00:01" 
        Storyboard.TargetName="blurTop" 
        Storyboard.TargetProperty="Radius"> 
    </DoubleAnimation> 
    <DoubleAnimation From="0" To="10" Duration="00:00:01" BeginTime="00:00:05" 
        Storyboard.TargetName="blurTop" 
        Storyboard.TargetProperty="Radius"> 
    </DoubleAnimation> 
    <DoubleAnimation From="1" To="0" Duration="00:00:01" BeginTime="00:00:06" 
        Storyboard.TargetName="txtTopCredit" 
        Storyboard.TargetProperty="Opacity"> 
    </DoubleAnimation> 
</Storyboard> 

RepeatBehavior भी एक सकारात्मक पूर्णांक के लिए सेट किया जा सकता है पर RepeatBehavior गुण सेट करने के लिए सक्षम होना चाहिए।

संबंधित मुद्दे