SwipeBackThemeAnimation Class

Die vorkonfigurierte Animation, die auf Steuerelemente angewendet wird, wenn ein Element nach einer Swipe Interaktion in seinen Layoutplatz zurückgleitet.

Vererbung

Object
  DependencyObject
    Timeline
      SwipeBackThemeAnimation

Syntax


public sealed class SwipeBackThemeAnimation : Timeline


<SwipeBackThemeAnimation ... />

Attribute

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

Member

SwipeBackThemeAnimationKlasse hat diese Membertypen:

Konstruktoren

SwipeBackThemeAnimationKlasse hat diese Konstruktoren.

KonstruktorBeschreibung
SwipeBackThemeAnimation Initializes a new instance of the SwipeBackThemeAnimation class.

 

Ereignisse

SwipeBackThemeAnimationKlasse hat diese Ereignisse.

EreignisBeschreibung
Completed Occurs when the Storyboard object has completed playing. (Geerbt von Timeline)

 

Methoden

The SwipeBackThemeAnimation Klasse hat diese Methoden. Es erbt auch Methoden von Object Klasse.

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

 

Eigenschaften

Der SwipeBackThemeAnimationKlasse hat diese Eigenschaften.

EigenschaftZugriffstypBeschreibung

AutoReverse

Lese-/SchreibzugriffGets or sets a value that indicates whether the timeline plays in reverse after it completes a forward iteration. (Geerbt von Timeline)

BeginTime

Lese-/SchreibzugriffGets or sets the time at which this Timeline should begin. (Geerbt von Timeline)

Dispatcher

SchreibgeschütztGets the CoreDispatcher that this object is associated with. (Geerbt von DependencyObject)

Duration

Lese-/SchreibzugriffGets or sets the length of time for which this timeline plays, not counting repetitions. (Geerbt von Timeline)

FillBehavior

Lese-/SchreibzugriffGets or sets a value that specifies how the animation behaves after it reaches the end of its active period. (Geerbt von Timeline)

FromHorizontalOffset

Lese-/SchreibzugriffGets or sets the distance by which the target is translated in the horizontal direction when the animation is active.

FromHorizontalOffsetProperty

SchreibgeschütztIdentifies the FromHorizontalOffset dependency property.

FromVerticalOffset

Lese-/SchreibzugriffGets or sets the distance by which the target is translated in the vertical direction when the animation is active.

FromVerticalOffsetProperty

SchreibgeschütztIdentifies the FromHorizontalOffset dependency property.

RepeatBehavior

Lese-/SchreibzugriffGets or sets the repeating behavior of this timeline. (Geerbt von Timeline)

SpeedRatio

Lese-/SchreibzugriffGets or sets the rate, relative to its parent, at which time progresses for this Timeline. (Geerbt von Timeline)

TargetName

Lese-/SchreibzugriffGets or sets the reference name of the control element being targeted.

TargetNameProperty

SchreibgeschütztIdentifies the TargetName dependency property.

 

Hinweise

Beachten Sie, dass das Festlegen der Duration-Eigenschaft keine Auswirkungen auf das Objekt hat, weil die Dauer vorkonfiguriert ist.

Beispiele

Im folgenden Beispiel wird eine SineEase-Beschleunigungsfunktion auf eine DoubleAnimation angewendet, um eine Animation zu erstellen, die verlangsamt wird.



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

Anforderungen

Mindestens unterstützter Client

Windows 8 [Nur Windows Store-Apps]

Mindestens unterstützter Server

Windows Server 2012 [Nur Windows Store-Apps]

Namespace

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

Metadaten

Windows.winmd

Siehe auch

Timeline
Animieren von Streifgesten
Richtlinien und Prüfliste für Streifanimationen

 

 

Anzeigen:
© 2014 Microsoft