SwipeBackThemeAnimation class

Applies to Windows and Windows Phone

Represents the preconfigured animation that applies to controls when an element slides back into its layout slot after a Swipe interaction.

Inheritance

Object
  DependencyObject
    Timeline
      SwipeBackThemeAnimation

Syntax


public sealed class SwipeBackThemeAnimation : Timeline


<SwipeBackThemeAnimation ... />

Attributes

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

Members

The SwipeBackThemeAnimation class has these types of members:

Constructors

The SwipeBackThemeAnimation class has these constructors.

ConstructorDescription
SwipeBackThemeAnimation Initializes a new instance of the SwipeBackThemeAnimation class.

 

Events

The SwipeBackThemeAnimation class has these events.

EventDescription
Completed Occurs when the Storyboard object has completed playing. (Inherited from Timeline)

 

Methods

The SwipeBackThemeAnimation class has these methods. It also inherits methods from the Object class.

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

 

Properties

The SwipeBackThemeAnimation class has these properties.

PropertyAccess typeDescription

AutoReverse

Read/writeGets or sets a value that indicates whether the timeline plays in reverse after it completes a forward iteration. (Inherited from Timeline)

BeginTime

Read/writeGets or sets the time at which this Timeline should begin. (Inherited from Timeline)

Dispatcher

Read-onlyGets the CoreDispatcher that this object is associated with. (Inherited from DependencyObject)

Duration

Read/writeGets or sets the length of time for which this timeline plays, not counting repetitions. (Inherited from Timeline)

FillBehavior

Read/writeGets or sets a value that specifies how the animation behaves after it reaches the end of its active period. (Inherited from Timeline)

FromHorizontalOffset

Read/writeGets or sets the distance by which the target is translated in the horizontal direction when the animation is active.

FromHorizontalOffsetProperty

Read-onlyIdentifies the FromHorizontalOffset dependency property.

FromVerticalOffset

Read/writeGets or sets the distance by which the target is translated in the vertical direction when the animation is active.

FromVerticalOffsetProperty

Read-onlyIdentifies the FromHorizontalOffset dependency property.

RepeatBehavior

Read/writeGets or sets the repeating behavior of this timeline. (Inherited from Timeline)

SpeedRatio

Read/writeGets or sets the rate, relative to its parent, at which time progresses for this Timeline. (Inherited from Timeline)

TargetName

Read/writeGets or sets the reference name of the control element being targeted.

TargetNameProperty

Read-onlyIdentifies the TargetName dependency property.

 

Remarks

Note that setting the Duration property has no effect on this object since the duration is preconfigured.

Examples

The following example applies a SineEase easing function to a DoubleAnimation to create a decelerating animation.



<!-- 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);
            }
        }
    }
}

Requirements

Minimum supported client

Windows 8 [Windows Store apps only]

Minimum supported server

Windows Server 2012 [Windows Store apps only]

Minimum supported phone

Windows Phone 8.1 [Windows Runtime apps only]

Namespace

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

Metadata

Windows.winmd

See also

Timeline
Animating swipe gestures
Guidelines and checklist for swipe animations

 

 

Show:
© 2014 Microsoft