2016-10-27 4 views
7

फ़्लिप करने के लिए WPF एनीमेशन विचार मुझे निम्नलिखित एनीमेशन विचार कैसे करना है, इस बारे में एक विचार की आवश्यकता है।एक पृष्ठ

public interface IMyViewModel 
{ 
    IPage CurrentPage { get; set;} 
} 

public interface IPage 
{ 
    string Title { get; set; } 
    string Description { get; set; } 
} 

IPage वस्तु है, स्पष्ट रूप से बोली जाने वाली, शीर्षक के साथ कागज के एक टुकड़े और विवरण उस पर लिखा: मान मैं इस तरह के रूप में परिभाषित किया गया एक दृश्य मॉडल है देता है। जब IPage ऑब्जेक्ट में मेरे व्यू मॉडल में परिवर्तन होता है, तो मैं नीचे उल्लिखित एनीमेशन चाहता हूं: animation outline

पेपर को 180 डिग्री स्पिन करना चाहिए। मंच पर जब यह 90 डिग्री फैलता है तो मुझे दिखाए गए सामग्री को अपडेट करने की आवश्यकता होती है।

क्या यह मेरे दृश्य मॉडल के साथ संभव है? क्या इसके लिए कोई अच्छी WPF चाल है?

+1

ऐसा कुछ नहीं है जो आप व्यूमोडेल में करेंगे। यह कुछ ऐसा है जो आप दृश्य में करेंगे। [यह पृष्ठ उदाहरण कोड प्रदान करता है] (https://msdn.microsoft.com/en-us/library/system.windows.media.media3d.viewport2dvisual3d (v = vs.110) .aspx) यह दर्शाता है कि ट्रैपेज़ॉयडल ट्रांसफॉर्म कैसे करें एक्सएएमएल में आपको क्या करने की ज़रूरत है, उनमें से दो अतिसंवेदनशील हैं, ट्रिगर्स अपनी दृश्यता को चलाते हैं। एंटरएक्शन में जब वे दिखाई देते हैं, तो आप एक्सिसएंगलेरोटेशन 3 डी.एंगल संपत्ति को 180 से 0 तक एनिमेट करते हैं; दृश्यता के लिए उनके बाहर निकलने पर, आप विपरीत तरीके से घूमते हैं। तो आपको ... –

+0

... इसे सब सिंक्रनाइज़ करना होगा। मैं इसे छड़ी से नहीं छूंगा, लेकिन यह करने योग्य है। इसके अलावा, शायद मैं पूरी तरह से गलत तरीके से यांत्रिकी के बारे में सोच रहा हूं। लेकिन 50,000 फीट से, 'व्यूपोर्ट 3 डी' चीज आपको जियोमेट्री ट्रांसफॉर्म दे सकती है, और ट्रिगर्स और डबलएनीमेशन इसे एनिमेट कर सकता है। शायद आप ट्रिगर्स के बजाय विजुअलस्टेट चाहते हैं। –

+0

यह एक दिलचस्प वर्ग है। मुझे लगता है कि कठिन हिस्सा सिंक्रनाइज़ेशन में देरी कैसे करेगा जब तक यह 90 डिग्री फिसल गया और अभी भी एक चिकनी एनीमेशन है। हो सकता है कि एनीमेशन 3 डी ऑब्जेक्ट के पीछे की ओर से शुरू होने से पहले मैं किसी भी तरह से नया 'आईपेज' सिंक्रनाइज़ कर सकता हूं जिसे मैं घुमाता हूं। – Yggdrasil

उत्तर

7

पुराना लेकिन अभी भी कुछ हद तक अच्छा: Avalon Patient Monitoring। आप Rotater3DTransition.xaml और Flipper3DTransition.xaml देख सकते हैं।

enter image description here

+0

इसने मुझे एनीमेशन से पहले सिंक्रनाइज़ करने का विचार दिया। 'Flipper3DTransition' में उन्होंने एनीमेशन शुरू करने से पहले विमान के पीछे की ओर सेट किया। – Yggdrasil

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