SwipeHintThemeAnimation Class

Swipe ジェスチャが現在利用できることを示す、構成済みのアニメーションを表します。

継承

Object
  DependencyObject
    Timeline
      SwipeHintThemeAnimation

構文


public sealed class SwipeHintThemeAnimation : Timeline

属性

[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