2012-09-06 12 views
18

में डब्ल्यूपीएफ घुमावदार आयताकार एनीमेशन मैं एक आयत परिभाषा को कैसे घुमा सकता हूं - केवल xaml परिभाषा के भीतर। http://www.codeproject.com/Articles/23257/Beginner-s-WPF-Animation-Tutorial जो मैं इस तरह का उपयोग करें::एक्सएएमएल

private void Window_Loaded_1(object sender, RoutedEventArgs e) 
    { 
     var da = new DoubleAnimation(360, 0, new Duration(TimeSpan.FromSeconds(1))); 
     var rt = new RotateTransform(); 
     rect1.RenderTransform = rt; 
     rect1.RenderTransformOrigin = new Point(0.5, 0.5); 
     da.RepeatBehavior = RepeatBehavior.Forever; 
     rt.BeginAnimation(RotateTransform.AngleProperty, da); 
    } 

लेकिन यह कैसे मैं केवल XAML के साथ इस लक्ष्य को हासिल कर सकते हैं अब तक मैं कोड के साथ एक समाधान है, लेकिन कोई XAML पाया?

+2

http://www.galasoft.ch/mydotnet/articles/article-2006102701.aspx यह कोड-बैक और एक्सएएमएल संस्करण दोनों बताता है .. http://www.google.com! – KyorCode

+0

ऐसा लगता है कि मैं क्या देख रहा हूं, मैं इसे देख लूंगा। धन्यवाद। –

+1

आपका प्रश्न कोड मेरे प्रश्न का उत्तर था। धन्यवाद! –

उत्तर

43

कुछ इस

<Rectangle x:Name="rect1" RenderTransformOrigin="0.5, 0.5"> 
    <Rectangle.RenderTransform> 
    <!-- giving the transform a name tells the framework not to freeze it --> 
    <RotateTransform x:Name="noFreeze" /> 
    </Rectangle.RenderTransform> 
    <Rectangle.Triggers> 
    <EventTrigger RoutedEvent="Loaded"> 
     <BeginStoryboard> 
     <Storyboard> 
      <DoubleAnimation 
      Storyboard.TargetProperty="(Rectangle.RenderTransform).(RotateTransform.Angle)" 
      To="-360" Duration="0:0:1" RepeatBehavior="Forever" /> 
     </Storyboard> 
     </BeginStoryboard> 
    </EventTrigger> 
    </Rectangle.Triggers> 
</Rectangle> 

बेशक जैसे आप Loaded ट्रिगर को हटाने और इस स्टोरीबोर्ड जब चाहें तब चला सकते हैं।

+0

धन्यवाद, यही वह है। –

+3

मुझे अपने 32x32 आयताकार में मूल केंद्र के लिए RotateTransform में सेंटरएक्स = "16" सेंटरवाई = "16" जोड़ने की आवश्यकता थी। – Dave

+7

एफवाईआई, यदि आप यहां हैं क्योंकि आपने यह कोशिश की है और आपको जमे हुए संपत्ति को एनिमेट करने के बारे में कोई त्रुटि हो रही है, ऐसा इसलिए है क्योंकि डब्ल्यूपीएफ आक्रामक रूप से आपके पेड़ में तत्वों को ठंडा कर रहा है। ढांचे को संकेत देने के लिए ढांचे को संकेत देने के लिए, बस अपने एक्स को एक एक्स: नाम दें, जो ढांचा देखता है और मानता है कि आप इसे कोड से संदर्भित करेंगे और इसलिए इसे फ्रीज नहीं किया जाएगा। – Will

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