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


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

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