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
<SwipeBackThemeAnimation ... />
Attributes
- ActivatableAttribute(NTDDI_WIN8)
- MarshalingBehaviorAttribute(Agile)
- StaticAttribute(Windows.UI.Xaml.Media.Animation.ISwipeBackThemeAnimationStatics, NTDDI_WIN8)
- ThreadingAttribute(Both)
- VersionAttribute(NTDDI_WIN8)
- WebHostHiddenAttribute()
Members
The SwipeBackThemeAnimation class has these types of members:
Constructors
The SwipeBackThemeAnimation class has these constructors.
| Constructor | Description |
|---|---|
| SwipeBackThemeAnimation | Initializes a new instance of the SwipeBackThemeAnimation class. |
Events
The SwipeBackThemeAnimation class has these events.
| Event | Description |
|---|---|
| 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.
| Method | Description |
|---|---|
| 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.
| Property | Access type | Description |
|---|---|---|
| Read/write | Gets or sets a value that indicates whether the timeline plays in reverse after it completes a forward iteration. (Inherited from Timeline) | |
| Read/write | Gets or sets the time at which this Timeline should begin. (Inherited from Timeline) | |
| Read-only | Gets the CoreDispatcher that this object is associated with. (Inherited from DependencyObject) | |
| Read/write | Gets or sets the length of time for which this timeline plays, not counting repetitions. (Inherited from Timeline) | |
| Read/write | Gets or sets a value that specifies how the animation behaves after it reaches the end of its active period. (Inherited from Timeline) | |
| Read/write | Gets or sets the distance by which the target is translated in the horizontal direction when the animation is active. | |
| Read-only | Identifies the FromHorizontalOffset dependency property. | |
| Read/write | Gets or sets the distance by which the target is translated in the vertical direction when the animation is active. | |
| Read-only | Identifies the FromHorizontalOffset dependency property. | |
| Read/write | Gets or sets the repeating behavior of this timeline. (Inherited from Timeline) | |
| Read/write | Gets or sets the rate, relative to its parent, at which time progresses for this Timeline. (Inherited from Timeline) | |
| Read/write | Gets or sets the reference name of the control element being targeted. | |
| Read-only | Identifies 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] |
|
Namespace |
|
|
Metadata |
|
See also
Build date: 12/4/2012