2011-01-12 15 views
9

मैंने अभिव्यक्ति मिश्रण 4 में एक छवि पर एक WPF स्टोरीबोर्ड एनीमेशन बनाया है। होवर पर, छवि धीरे-धीरे धुंधला हो जाती है। जब माउस छवि को छोड़ देता है तो क्या स्टोरीबोर्ड को पूर्ववत या उलट दिया जा सकता है? मैं इसे स्टोरीबोर्ड ट्रिगर कर सकता हूं। हटाएं() लेकिन वह वास्तव में स्टोरीबोर्ड के पीछे नहीं खेलेंगे।डब्ल्यूपीएफ स्टोरीबोर्ड एनीमेशन कैसे रिवर्स करें?

क्या कोई तरीका है कि मैं अभिव्यक्ति मिश्रण 4 के भीतर पूरा कर सकता हूं?

+0

मैं अभिव्यक्ति मिश्रण का उपयोग नहीं करते हैं, लेकिन हो सकता है आप XAML सीधे पर काम करना चाहते हैं? किसी अन्य घटना द्वारा स्टोरीबोर्ड को रिवर्स करने के लिए, सबसे आसान तरीका है कि एनीमेशन को रिवर्स ऑर्डर में एनीमेशन कर रहा है और इसे उस ईवेंट पर टैग करें –

+0

मैं ऐसा करने के बारे में सोच रहा था लेकिन मैं अभी तक एक और स्टोरीबोर्ड बनाने से बचने की कोशिश कर रहा था। इनपुट के लिए धन्यवाद। –

+0

अब तक यदि एक ही घटना द्वारा "डू-एंड-रिवर्स" ट्रिगर किया जाता है, तो इसे आसानी से किया जा सकता है, लेकिन आपके मामले के लिए, यह 2 अलग-अलग ईवेंट है। अकेले xaml के माध्यम से एक सुविधाजनक तरीके से जानने में रुचि होगी। –

उत्तर

11

आप मिश्रण का उपयोग कर रहे हैं, आप VisualStateManager के लिए मिश्रण के समर्थन का लाभ उठाना चाहिए। आपको बस इतना करना है कि ऑब्जेक्ट अपने विभिन्न राज्यों जैसे MouseOver और Normal और विभिन्न राज्यों के बीच संक्रमण कितने समय तक दिखता है, और दृश्य राज्य प्रबंधक राज्यों के बीच संक्रमण के बारे में बताता है।

किसी छवि में कोई दृश्यमान स्थिति नहीं है लेकिन आप Button टेम्पलेट को संपादित कर सकते हैं और इसकी सामग्री को एक छवि बना सकते हैं और फिर बटन के लिए राज्यों को संपादित कर सकते हैं। मैंने यह किया और XAML तकनीक का प्रदर्शन करने को साफ कर दिया है:

<Grid> 
    <Grid.Resources> 
     <Style x:Key="ButtonStyle1" TargetType="{x:Type Button}"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type Button}"> 
         <Image x:Name="image" Height="100" Width="Auto" Source="http://thecybershadow.net/misc/stackoverflow.png" Margin="0,0,-25,0"> 
          <Image.Effect> 
           <DropShadowEffect ShadowDepth="0"/> 
          </Image.Effect> 
          <VisualStateManager.VisualStateGroups> 
           <VisualStateGroup x:Name="CommonStates"> 
            <VisualStateGroup.Transitions> 
             <VisualTransition GeneratedDuration="0:0:0.5"/> 
            </VisualStateGroup.Transitions> 
            <VisualState x:Name="Normal"/> 
            <VisualState x:Name="MouseOver"> 
             <Storyboard> 
              <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Effect).(DropShadowEffect.ShadowDepth)" Storyboard.TargetName="image"> 
               <EasingDoubleKeyFrame KeyTime="0" Value="15"/> 
              </DoubleAnimationUsingKeyFrames> 
             </Storyboard> 
            </VisualState> 
            <VisualState x:Name="Pressed"/> 
            <VisualState x:Name="Disabled"/> 
           </VisualStateGroup> 
          </VisualStateManager.VisualStateGroups> 
         </Image> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </Grid.Resources> 
    <Button Style="{StaticResource ButtonStyle1}"/> 
</Grid> 

ध्यान दें कि ब्लेंड आप के लिए यह सब करता है लेकिन XAML को समझने में मदद मिलेगी। यहाँ एक मिश्रण उन्मुख ट्यूटोरियल है:

+0

बनाने से बचना चाहते हैं आपकी मदद के लिए धन्यवाद। एक बटन में बनाना एक बमर की तरह है, लेकिन जब तक यह सही ढंग से काम करता है, मैं इसके साथ सौदा कर सकता हूं। धन्यवाद! –

+0

आप मेरे उदाहरण में देख सकते हैं कि आप सभी बटन-नेस को "शैली दूर" कैसे कर सकते हैं: कोई क्रोम, कोई सीमा नहीं, कोई अतिरिक्त माउस-ओवर व्यवहार नहीं, आदि। लेकिन यदि आप मेरे द्वारा भेजे गए लिंक पढ़ते हैं, तो यह आपको दिखाएगा कि कैसे किसी भी प्रकार के तत्व के लिए अपने स्वयं के राज्य समूह और राज्य जैसे माउसओवर और सामान्य बनाएं। तो, नहीं, यह एक बटन की तरह नहीं है या नहीं। –

+0

यह "डब्ल्यूपीएफ स्टोरीबोर्ड एनीमेशन को रिवर्स कैसे करें" का उत्तर नहीं है? -.- ' –

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