2009-11-25 14 views
11

का उपयोग करके एनीमेशन के दौरान एक छवि बदलें, मैं एक स्टोरीबोर्ड के दौरान छवि बदलने के लिए एक तरीका ढूंढ रहा था, या अधिक विशेष रूप से, Source छवि की एक नई छवि संसाधन को इंगित करने के लिए बदलें। वहाँ एक StringAnimationUsingKeyFrames और एक DiscreteStringKeyFrame प्रतीत हो रहा है, लेकिन यह काम नहीं करता (जहाँ तक मैं बता सकता है) के बाद से छवि का स्रोत संपत्ति प्रकार का है ImageSourceस्टोरीबोर्ड

मेरे वर्तमान स्टोरीबोर्ड इस

<Storyboard x:Key="TransitionImage"> 
    <DoubleAnimationUsingKeyFrames 
     BeginTime="00:00:00" 
     Storyboard.TargetName="image" 
     Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)"> 
     <SplineDoubleKeyFrame KeyTime="00:00:00.7000000" Value="0.2"/> 
     <SplineDoubleKeyFrame KeyTime="00:00:01.5000000" Value="1"/> 
    </DoubleAnimationUsingKeyFrames> 
    <StringAnimationUsingKeyFrames 
     BeginTime="00:00:00" 
     Storyboard.TargetName="image" 
     Storyboard.TargetProperty="(Image.Source)"> 
     <!-- This does not work --> 
     <DiscreteStringKeyFrame KeyTime="00:00:00.7000000" Value="check_24.png"/> 
    </StringAnimationUsingKeyFrames> 
    <DoubleAnimationUsingKeyFrames 
     BeginTime="00:00:00" 
     Storyboard.TargetName="image" 
     Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)"> 
     <SplineDoubleKeyFrame KeyTime="00:00:00.7000000" Value="0.2"/> 
     <SplineDoubleKeyFrame KeyTime="00:00:01.5000000" Value="1"/> 
    </DoubleAnimationUsingKeyFrames> 
</Storyboard> 

तरह लग रहा है और छवि

<Image x:Name="image" 
     Source="delete_24.png" 
     Width="32" Height="32" 
     Margin="8" 
     RenderTransformOrigin="0.5,0.5"> 
    <Image.RenderTransform> 
     <TransformGroup> 
      <ScaleTransform/> 
      <SkewTransform/> 
      <RotateTransform/> 
      <TranslateTransform/> 
     </TransformGroup> 
    </Image.RenderTransform> 
</Image> 

मैं स्टोरीबोर्ड के हिस्से के रूप छवि के Source बदलने के लिए या मैं भाग्य से बाहर कर रहा हूँ कर सकते हैं?

उत्तर

31

ठीक है, इसे स्वयं हल किया। ऐसा लगता है कि आपको ObjectAnimationUsingKeyFrames और DiscreteObjectKeyFrame का उपयोग नीचे दिखाया गया है:

<ObjectAnimationUsingKeyFrames 
    BeginTime="00:00:00" 
    Storyboard.TargetName="image" 
    Storyboard.TargetProperty="(Image.Source)"> 
    <DiscreteObjectKeyFrame KeyTime="00:00:00.7000000"> 
     <DiscreteObjectKeyFrame.Value> 
      <BitmapImage UriSource="check_24.png" /> 
     </DiscreteObjectKeyFrame.Value> 
    </DiscreteObjectKeyFrame> 
</ObjectAnimationUsingKeyFrames>