SwipeHintThemeAnimation Class

表示指示 Swipe 笔势现在可用的预配置动画。

继承

Object
  DependencyObject
    Timeline
      SwipeHintThemeAnimation

语法


public sealed class SwipeHintThemeAnimation : Timeline


<SwipeHintThemeAnimation ... />

特性

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

成员

SwipeHintThemeAnimation类 具有这些类型的成员:

构造函数

SwipeHintThemeAnimation类 具有这些构造函数。

构造函数说明
SwipeHintThemeAnimation Initializes a new instance of the SwipeHintThemeAnimation class.

 

事件

SwipeHintThemeAnimation类 具有这些事件。

事件说明
Completed Occurs when the Storyboard object has completed playing. (继承自Timeline)

 

方法

The SwipeHintThemeAnimation 类 具有这些方法。 它还继承方法于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)

 

属性

SwipeHintThemeAnimation类 具有这些属性。

属性访问类型说明

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)

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.

ToHorizontalOffset

读/写Gets or sets the distance by which the target is translated in the horizontal direction when the animation is active.

ToHorizontalOffsetProperty

只读Identifies the ToHorizontalOffset dependency property.

ToVerticalOffset

读/写Gets or sets the distance by which the target is translated in the vertical direction when the animation is active.

ToVerticalOffsetProperty

只读Identifies the ToVerticalOffset dependency property.

 

备注

在预先配置期间,请注意设置 Duration 属性对该对象没有影响。

示例

下面是支持重击选择的自定义控件的模板。



<!-- Example template of a custom control that supports swipe selection. 
     A SwipeHintThemeAnimation is run when the control is in the Hinting 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++]

元数据

Windows.winmd

另请参见

Timeline
动画处理重击笔势
重击动画的准则和检查表

 

 

显示:
© 2014 Microsoft