SwipeBackThemeAnimation Class

代表預先設定的動畫,在Swipe互動後,該動畫會在項目滑動回其配置位置時套用至控制項。

繼承

Object
  DependencyObject
    Timeline
      SwipeBackThemeAnimation

語法


public sealed class SwipeBackThemeAnimation : Timeline


<SwipeBackThemeAnimation ... />

屬性

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

成員

SwipeBackThemeAnimation類別 具有下列類型的成員:

建構函式

SwipeBackThemeAnimation類別 具有這些建構函式。

建構函式描述
SwipeBackThemeAnimation Initializes a new instance of the SwipeBackThemeAnimation class.

 

事件

SwipeBackThemeAnimation類別 具有這些事件。

事件描述
Completed Occurs when the Storyboard object has completed playing. (繼承自Timeline)

 

方法

The SwipeBackThemeAnimation 類別 擁有這些方法。 它也會繼承方法自 Object 類別.

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

 

屬性

SwipeBackThemeAnimation類別 擁有這些屬性。

屬性存取類型描述

AutoReverse

讀取/寫入Gets or sets a value that indicates whether the timeline plays in reverse after it completes a forward iteration. (繼承自Timeline)

BeginTime

讀取/寫入Gets or sets the time at which this Timeline should begin. (繼承自Timeline)

Dispatcher

唯讀Gets the CoreDispatcher that this object is associated with. (繼承自DependencyObject)

Duration

讀取/寫入Gets or sets the length of time for which this timeline plays, not counting repetitions. (繼承自Timeline)

FillBehavior

讀取/寫入Gets or sets a value that specifies how the animation behaves after it reaches the end of its active period. (繼承自Timeline)

FromHorizontalOffset

讀取/寫入Gets or sets the distance by which the target is translated in the horizontal direction when the animation is active.

FromHorizontalOffsetProperty

唯讀Identifies the FromHorizontalOffset dependency property.

FromVerticalOffset

讀取/寫入Gets or sets the distance by which the target is translated in the vertical direction when the animation is active.

FromVerticalOffsetProperty

唯讀Identifies the FromHorizontalOffset dependency property.

RepeatBehavior

讀取/寫入Gets or sets the repeating behavior of this timeline. (繼承自Timeline)

SpeedRatio

讀取/寫入Gets or sets the rate, relative to its parent, at which time progresses for this Timeline. (繼承自Timeline)

TargetName

讀取/寫入Gets or sets the reference name of the control element being targeted.

TargetNameProperty

唯讀Identifies the TargetName dependency property.

 

備註

請注意,設定 Duration 屬性對於這個物件沒有任何影響,因為持續期間已預先設定。

範例

下列範例會將 SineEase 加/減速函式套用至 DoubleAnimation 以建立減速的動畫。



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

需求

支援的最小用戶端

Windows 8 [僅限 Windows 市集應用程式]

支援的最小伺服器

Windows Server 2012 [僅限 Windows 市集應用程式]

命名空間

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

Metadata

Windows.winmd

請參閱

Timeline
以動畫呈現撥動手勢
撥動動畫的方針和檢查清單

 

 

顯示:
© 2015 Microsoft