2011-04-20 17 views
5

में सरल फ्लिपबुक एनीमेशन मेरे पास 10 एक्सएएमएल फाइलें हैं, प्रत्येक एक एनीमेशन के फ्रेम का सामना करती है (उन्हें एसडब्ल्यूएफ से परिवर्तित किया गया है इसलिए प्रत्येक ऑब्जेक्ट के लिए कोई महत्वपूर्ण फ्रेम जानकारी नहीं है)। प्रत्येक एक्सएएमएल फ़ाइल में प्रत्येक फ्रेम के लिए विभिन्न आकारों के साथ एक कैनवास होता है।एक्सएएमएल

मैं 1 एक्सएएमएल फ़ाइल बनाना चाहता हूं जिसमें प्रत्येक फ्रेम के लिए कैनवास जानकारी शामिल है और फिर प्रत्येक कैनवास को उपयुक्त समय पर प्रदर्शित करने के लिए एक्सएएमएल का उपयोग करें, इसलिए प्रत्येक फ्रेम को एक दूसरे के बाद विस्थापित किया जाता है। क्या यह जाने का एक अच्छा तरीका है? मैं यह कैसे कर सकता हूँ? मैंने मिश्रण में कोशिश की लेकिन यह संभव नहीं लगता है क्योंकि मेरी वस्तु प्रत्येक फ्रेम पर अलग होती है (यानी मैं ऑब्जेक्ट गुणों को एनिमेट नहीं कर रहा हूं)।

मैं केवल एक घोषणात्मक समाधान की तलाश में हूं।

उत्तर

3

आप निम्न की कोशिश कर सकते हैं:

<Grid x:Name="FrameContainer"> 
    <Canvas x:Name="Canvas1" Visibility="Collapsed"><!-- shapes --></Canvas> 
    <Canvas x:Name="Canvas2" Visibility="Collapsed"><!-- shapes --></Canvas> 
    <Canvas x:Name="Canvas3" Visibility="Collapsed"><!-- shapes --></Canvas> 
    <Canvas x:Name="Canvas4" Visibility="Collapsed"><!-- shapes --></Canvas> 
    <Canvas x:Name="Canvas5" Visibility="Collapsed"><!-- shapes --></Canvas> 
    <Canvas x:Name="Canvas6" Visibility="Collapsed"><!-- shapes --></Canvas> 
    ... 
</Grid> 

फिर एक स्टोरीबोर्ड है कि यह फ्रेम एनिमेशन द्वारा एक फ्रेम की तरह लग रहे बनाने के लिए प्रत्येक कैनवास की दृश्यता टॉगल करें।

मुझे एक परियोजना में एक ही समस्या थी, और मैंने एक कस्टम नियंत्रण किया जिसमें एक (int) फ्रेम निर्भरता संपत्ति है जो टेम्पलेट से तत्वों को छिपाने/दिखाने का प्रभारी है। आप फ़्रेम प्रॉपर्टी को भी एनिमेट कर सकते हैं।

+0

बहुत धन्यवाद - अच्छी तरह से काम करता है। –

1

Darkoleptiko के संदेश में इसके अलावा, मैं इस तरह एक स्टोरीबोर्ड के साथ ऊपर अपने दृष्टिकोण का इस्तेमाल किया:

<Window.Resources> 
    <Storyboard x:Key="Storyboard1"> 
     <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="Canvas1"> 
      <DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Visible}"/> 
      <DiscreteObjectKeyFrame KeyTime="0:0:0.1" Value="{x:Static Visibility.Collapsed}"/> 
     </ObjectAnimationUsingKeyFrames> 
     <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="Canvas2"> 
      <DiscreteObjectKeyFrame KeyTime="0:0:0.1" Value="{x:Static Visibility.Visible}"/> 
      <DiscreteObjectKeyFrame KeyTime="0:0:0.2" Value="{x:Static Visibility.Collapsed}"/> 
     </ObjectAnimationUsingKeyFrames> 
     <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="Canvas3"> 
      <DiscreteObjectKeyFrame KeyTime="0:0:0.2" Value="{x:Static Visibility.Visible}"/> 
      <DiscreteObjectKeyFrame KeyTime="0:0:0.3" Value="{x:Static Visibility.Collapsed}"/> 
     </ObjectAnimationUsingKeyFrames> 

    </Storyboard> 
</Window.Resources> 
संबंधित मुद्दे