SwipeBackThemeAnimation Class

Représente l'animation préconfigurée qui s'applique aux contrôles lorsqu'un élément repart dans son emplacement de disposition après une interaction Swipe.

Héritage

Object
  DependencyObject
    Timeline
      SwipeBackThemeAnimation

Syntaxe


public sealed class SwipeBackThemeAnimation : Timeline


<SwipeBackThemeAnimation ... />

Attributs

[MarshalingBehavior(Agile)]
[Threading(Both)]
[Version(0x06020000)]
[WebHostHidden()]

Membres

SwipeBackThemeAnimationClasse possède ces types de membres :

Constructeurs

SwipeBackThemeAnimationClasse possède ces constructeurs.

ConstructeurDescription
SwipeBackThemeAnimation Initializes a new instance of the SwipeBackThemeAnimation class.

 

Événements

SwipeBackThemeAnimationClasse possède ces événements.

ÉvénementDescription
Completed Occurs when the Storyboard object has completed playing. (Hérité de Timeline)

 

Méthodes

The SwipeBackThemeAnimation Classe a les méthodes suivantes. Elle hérite également des méthodes de Object Classe.

MéthodeDescription
ClearValue Clears the local value of a dependency property. (Hérité de DependencyObject)
GetAnimationBaseValue Returns any base value established for a dependency property, which would apply in cases where an animation is not active. (Hérité de DependencyObject)
GetValue Returns the current effective value of a dependency property from a DependencyObject. (Hérité de DependencyObject)
ReadLocalValue Returns the local value of a dependency property, if a local value is set. (Hérité de DependencyObject)
SetValue Sets the local value of a dependency property on a DependencyObject. (Hérité de DependencyObject)

 

Propriétés

Le SwipeBackThemeAnimationClasse a les propriétés suivantes.

PropriétéType d'accèsDescription

AutoReverse

Lecture/écritureGets or sets a value that indicates whether the timeline plays in reverse after it completes a forward iteration. (Hérité de Timeline)

BeginTime

Lecture/écritureGets or sets the time at which this Timeline should begin. (Hérité de Timeline)

Dispatcher

En lecture seuleGets the CoreDispatcher that this object is associated with. (Hérité de DependencyObject)

Duration

Lecture/écritureGets or sets the length of time for which this timeline plays, not counting repetitions. (Hérité de Timeline)

FillBehavior

Lecture/écritureGets or sets a value that specifies how the animation behaves after it reaches the end of its active period. (Hérité de Timeline)

FromHorizontalOffset

Lecture/écritureGets or sets the distance by which the target is translated in the horizontal direction when the animation is active.

FromHorizontalOffsetProperty

En lecture seuleIdentifies the FromHorizontalOffset dependency property.

FromVerticalOffset

Lecture/écritureGets or sets the distance by which the target is translated in the vertical direction when the animation is active.

FromVerticalOffsetProperty

En lecture seuleIdentifies the FromHorizontalOffset dependency property.

RepeatBehavior

Lecture/écritureGets or sets the repeating behavior of this timeline. (Hérité de Timeline)

SpeedRatio

Lecture/écritureGets or sets the rate, relative to its parent, at which time progresses for this Timeline. (Hérité de Timeline)

TargetName

Lecture/écritureGets or sets the reference name of the control element being targeted.

TargetNameProperty

En lecture seuleIdentifies the TargetName dependency property.

 

Remarques

Notez que la définition de la propriété Duration n'a aucun effet sur cet objet comme la durée est préconfigurée.

Exemples

L'exemple suivant applique une fonction d'accélération SineEase à DoubleAnimation pour créer une animation de ralentissement.



<!-- Example template of a custom control that supports swipe selection.  
     A SwipeBackThemeAnimation is run when the control goes to the Normal state. -->
<ControlTemplate TargetType="local:SwipeControl">
    <Grid>
        <VisualStateManager.VisualStateGroups>
            <VisualStateGroup x:Name="SwipeStates">                                
                <VisualState x:Name="Normal">
                    <Storyboard>
                        <SwipeBackThemeAnimation TargetName="contentRectangle" />
                    </Storyboard>
                </VisualState>
                <VisualState x:Name="Selected">
                    <Storyboard>
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="SelectedText" 
                          Storyboard.TargetProperty="Visibility">
                            <DiscreteObjectKeyFrame KeyTime="0" Value="Visible" />
                        </ObjectAnimationUsingKeyFrames>
                    </Storyboard>
                </VisualState>
                <VisualState x:Name="Hinting">
                    <Storyboard>
                        <SwipeHintThemeAnimation TargetName="contentRectangle" />
                    </Storyboard>
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>
        <Rectangle Width="100" Height="100" Fill="{TemplateBinding Background}" />
                        
        <Rectangle x:Name="contentRectangle"
                    Width="100" 
                    Height="100" 
                    Fill="{TemplateBinding Foreground}" />
        <TextBlock x:Name="SelectedText" 
                    Text="Selected" 
                    Visibility="Collapsed" 
                    Foreground="White" 
                    FontSize="20" 
                    VerticalAlignment="Center" 
                    HorizontalAlignment="Center"  />
    </Grid>
</ControlTemplate>
 


public sealed class SwipeControl : Control
{
    GestureRecognizer _gestureRecognizer;
    bool _isPointerDown = false;
    bool _isSelected = false;
    bool _isCrossSliding = false;

    public SwipeControl()
    {
        this.DefaultStyleKey = typeof(SwipeControl);
        // Direct gesture recognizer to recognize hold and swipe gestures.
        _gestureRecognizer = new GestureRecognizer();
        _gestureRecognizer.GestureSettings = GestureSettings.Hold | 
                                             GestureSettings.HoldWithMouse | 
                                             GestureSettings.CrossSlide;

        _gestureRecognizer.Holding += GestureRecognizer_Holding;
        _gestureRecognizer.CrossSlideHorizontally = false; // Support vertical swiping.
        _gestureRecognizer.CrossSliding += GestureRecognizer_CrossSliding;            
    }

    protected override void OnPointerPressed(PointerRoutedEventArgs e)
    {
        base.OnPointerPressed(e);
        _isPointerDown = CapturePointer(e.Pointer);
        // Send input to GestureRecognizer for processing.
        _gestureRecognizer.ProcessDownEvent(e.GetCurrentPoint(this));
            
    }

    protected override void OnPointerReleased(PointerRoutedEventArgs e)
    {
        base.OnPointerReleased(e);
        // Send input to GestureRecognizer for processing.
        _gestureRecognizer.ProcessUpEvent(e.GetCurrentPoint(this));

        _isCrossSliding = false;

        // Go to Normal state when pointer is released.
        if (!_isSelected)
        {
            VisualStateManager.GoToState(this, "Normal", true);
        }
    }

    protected override void OnPointerMoved(PointerRoutedEventArgs e)
    {
        base.OnPointerMoved(e);
        if (_isPointerDown)
        {
            // Send input to GestureRecognizer for processing.
            _gestureRecognizer.ProcessMoveEvents(e.GetIntermediatePoints(this));
        }
    }

    void GestureRecognizer_Holding(GestureRecognizer sender, HoldingEventArgs args)
    {
        // Go to Hinting state if control is not already selected.
        if (!_isSelected)
        {
            VisualStateManager.GoToState(this, "Hinting", true);
        }
    }

    void GestureRecognizer_CrossSliding(GestureRecognizer sender, CrossSlidingEventArgs args)
    {
        // Prevent multiple state changes for the same swipe gesture.
        if (!_isCrossSliding)
        {
            _isCrossSliding = true;                
                
            // Toggle between Selected and Normal on swipe gesture.
            _isSelected = !_isSelected;
            if (_isSelected)
            {
                VisualStateManager.GoToState(this, "Selected", true);
            }
            else
            {
                VisualStateManager.GoToState(this, "Normal", true);
            }
        }
    }
}

Conditions requises

Client minimal pris en charge

Windows 8 [Applications Windows Store uniquement]

Serveur minimal pris en charge

Windows Server 2012 [Applications Windows Store uniquement]

Espace de noms

Windows.UI.Xaml.Media.Animation
Windows::UI::Xaml::Media::Animation [C++]

Métadonnées

Windows.winmd

Voir aussi

Timeline
Animation des mouvements de balayage
Instructions et liste de contrôle pour les animations de glisser

 

 

Afficher:
© 2014 Microsoft