Windows Dev Center

SwipeBackThemeAnimation class

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 ref class SwipeBackThemeAnimation sealed : Timeline


<SwipeBackThemeAnimation ... />

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)
RegisterPropertyChangedCallback Registers an instance-specific property value for a property-changed notification that comes from the core property system. (Inherited from DependencyObject)
SetValue Sets the local value of a dependency property on a DependencyObject. (Inherited from DependencyObject)
UnregisterPropertyChangedCallback Cancels a change notification that was previously registered by calling RegisterPropertyChangedCallback. (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. The CoreDispatcher represents a facility that can access the DependencyObject on the UI thread even if the code is initiated by a non-UI thread. (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>
 


// SwipeControl.h:
public ref class SwipeControl sealed : public Windows::UI::Xaml::Controls::Control
{
public:
    SwipeControl();

protected:
    virtual void OnPointerPressed(Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e) override;
    virtual void OnPointerReleased(Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e) override;
    virtual void OnPointerMoved(Windows::UI::Xaml::Input:: PointerRoutedEventArgs^ e) override;

private:
    Windows::UI::Input::GestureRecognizer^     m_gestureRecognizer;
    bool                                       m_isPointerDown;
    bool                                       m_isSelected;
    bool                                       m_isCrossSliding;

    void GestureRecognizer_Holding(Windows::UI::Input::GestureRecognizer^ sender,    
        Windows::UI::Input::HoldingEventArgs^ args);
    void GestureRecognizer_CrossSliding(Windows::UI::Input::GestureRecognizer^ sender, 
        Windows::UI::Input::CrossSlidingEventArgs^ args);
};

// SwipeControl.cpp:
SwipeControl::SwipeControl() : m_isCrossSliding(false), m_isPointerDown(false), m_isSelected(false)
{
    DefaultStyleKey = "DocsCPP.SwipeControl";

    m_gestureRecognizer = ref new GestureRecognizer();
    m_gestureRecognizer->GestureSettings = GestureSettings::Hold | 
                                              GestureSettings::HoldWithMouse | 
                                              GestureSettings::CrossSlide;

    m_gestureRecognizer->Holding::add(ref new TypedEventHandler<GestureRecognizer^, 
        HoldingEventArgs^>(this, &SwipeControl::GestureRecognizer_Holding));
    m_gestureRecognizer->CrossSlideHorizontally = false; // Support vertical swiping.
    m_gestureRecognizer->CrossSliding::add(ref new TypedEventHandler<GestureRecognizer^, 
        CrossSlidingEventArgs^>(this, &SwipeControl::GestureRecognizer_CrossSliding));
}


void SwipeControl::OnPointerPressed(PointerRoutedEventArgs^ e)
{
    m_isPointerDown = CapturePointer(e->Pointer);
    // Send input to GestureRecognizer for processing.
    m_gestureRecognizer->ProcessDownEvent(e->GetCurrentPoint(this));
}

void SwipeControl::OnPointerReleased(PointerRoutedEventArgs^ e)
{
    // Send input to GestureRecognizer for processing.
    m_gestureRecognizer->ProcessUpEvent(e->GetCurrentPoint(this));

    m_isCrossSliding = false;

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

void SwipeControl::OnPointerMoved(PointerRoutedEventArgs^ e)
{
    if (m_isPointerDown)
    {
        // Send input to GestureRecognizer for processing.
        m_gestureRecognizer->ProcessMoveEvents(e->GetIntermediatePoints(this));
    }
}

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

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

Requirements (Windows 10 device family)

Device family

Universal

API contract

Windows.Foundation.UniversalApiContract, introduced version 1.0

Namespace

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

Metadata

Windows.Foundation.UniversalApiContract.winmd

Requirements (Windows 8.x and Windows Phone 8.x)

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

Attributes

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

See also

Object
Timeline
Animating swipe gestures

 

 

Show:
© 2015 Microsoft