2011-10-07 13 views
6

मेरे पास एक बटन के साथ एक स्टैपपैन है, जिसे क्लिक करते समय, स्टैकपैन गायब हो जाता है। मैं छुपा हुआ दृश्य रूप को एनिमेट करना चाहता हूं, लेकिन ऐसा करने में सक्षम नहीं है।WPF stackpanel visibilty एनीमेशन

मैं थोड़ी देर के लिए चारों ओर देखा और कुछ है कि इस तरह दिखता है टकरा:

<StackPanel Margin="80,60,60,80" Background="Gray"> 
      <StackPanel.Triggers > 

       <EventTrigger > 
        <EventTrigger.Actions> 
         <BeginStoryboard> 
          <Storyboard TargetProperty="Visibility"> 

           <DoubleAnimation Duration="0:0:5:0" From="Visible" To="Hidden"/> 

          </Storyboard> 
         </BeginStoryboard> 
        </EventTrigger.Actions> 
       </EventTrigger> 

      </StackPanel.Triggers> 
      <Button Name="buttonTop" Content="TOP" Margin="40,40,40,40" Click="buttonTop_Click" Width="131" /> 
     </StackPanel> 

जो निश्चित रूप से, नहीं वहाँ अभी तक 100% है। कोई विचार?

thanx

उत्तर

10

आप उपयोग कर सकते हैं

<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ItemsHost" 
           Storyboard.TargetProperty="Visibility"> 
    <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{x:Static Visibility.Visible}"/> 
</ObjectAnimationUsingKeyFrames> 

यह काफी एक स्टोरीबोर्ड, जहां KeyTime समय था जब मूल्य सेट किया जाना चाहिए का वर्णन करता है में एक सेटर है। तो पूरा स्टोरीबोर्ड इस तरह होगा:

<BeginStoryboard> 
    <Storyboard> 
     <DoubleAnimation Storyboard.TargetProperty="Opacity" 
         To="0" Duration="0:0:5.0"/> 
     <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility"> 
      <DiscreteObjectKeyFrame KeyTime="0:0:5.0" Value="{x:Static Visibility.Hidden}"/> 
     </ObjectAnimationUsingKeyFrames> 
    </Storyboard> 
</BeginStoryboard> 

संपादित करें:

<Button Content="Button" HorizontalAlignment="Left" Margin="337,221,0,0" VerticalAlignment="Top" Width="75"> 
    <Button.Triggers> 
     <EventTrigger RoutedEvent="Button.Click"> 
      <BeginStoryboard> 
       <Storyboard> 
        <DoubleAnimation Storyboard.TargetProperty="Opacity" 
       To="0" Duration="0:0:5.0"/> 
        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility"> 
         <DiscreteObjectKeyFrame KeyTime="0:0:5.0" Value="{x:Static Visibility.Hidden}"/> 
        </ObjectAnimationUsingKeyFrames> 
       </Storyboard> 
      </BeginStoryboard> 
     </EventTrigger> 
    </Button.Triggers> 
</Button> 
+0

विस्तृत उत्तर के लिए धन्यवाद। यह अच्छा काम करता है। मैं इसे कैसे सेट करूं ताकि जब मैं बटन पर क्लिक करता हूं तो यह सक्रिय हो जाता है? – hikizume

+0

मैंने इसे संपादित किया। – AkselK

+0

उत्कृष्ट। आपका बहुत बहुत धन्यवाद! – hikizume

4

Visibiltiy एक असतत मूल्य है - यह चालू या बंद है, तो animating अभी भी नहीं बल्कि धीरे-धीरे से अचानक लापता होने के बाहर fading का परिणाम देगा। आप को StackPanel से 1 से 0 तक एनिमेट कर सकते हैं, और उसके बाद VisibiltyHidden (या Collapsed) को उसके बाद एनिमेट कर सकते हैं।

+1

मैं विचार को समझने लेकिन जब से मैं बहुत मैं wpf के लिए नया हूँ: स्टोरीबोर्ड ट्रिगर बटन क्लिक होने बनाने के लिए विचार को कोड में अनुवाद करने के लिए ज्ञान की कमी है। एक और विस्तृत उत्तर की सराहना की जाएगी। – hikizume