Share via


VisualInteractionSource クラス

定義

ビジュアルに対する InteractionTracker への入力を構成するためのオブジェクト。

VisualInteractionSource は InteractionTracker でのみ使用するように設計されており、状態とプロパティを駆動するために InteractionTracker に送信される入力を定義します。 このクラスには、ヒット テストに使用するビジュアルと、ジェスチャと入力の種類が InteractionTracker に送信されるさまざまな構成プロパティの両方が含まれています。

public ref class VisualInteractionSource sealed : CompositionObject, ICompositionInteractionSource
public ref class VisualInteractionSource : CompositionObject, ICompositionInteractionSource
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 196608)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class VisualInteractionSource final : CompositionObject, ICompositionInteractionSource
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 196608)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class VisualInteractionSource : CompositionObject, ICompositionInteractionSource
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 196608)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class VisualInteractionSource : CompositionObject, ICompositionInteractionSource
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 196608)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class VisualInteractionSource : CompositionObject, ICompositionInteractionSource
Public NotInheritable Class VisualInteractionSource
Inherits CompositionObject
Implements ICompositionInteractionSource
Public Class VisualInteractionSource
Inherits CompositionObject
Implements ICompositionInteractionSource
継承
Object Platform::Object IInspectable CompositionObject VisualInteractionSource
属性
実装

Windows の要件

デバイス ファミリ
Windows 10 Anniversary Edition (10.0.14393.0 で導入)
API contract
Windows.Foundation.UniversalApiContract (v3.0 で導入)

void SetupSimpleInteractionTracker(Visual viewportVisual, Visual contentVisual)
{
  //
  // Create the InteractionTracker and set its min/max position and scale.  These could 
  // also be bound to expressions.  Note: The scrollable area can be changed from either 
  // end to facilitate content updates/virtualization.
  //

  _tracker = InteractionTracker.Create(_compositor);

  _tracker.MaxPosition = new Vector3(
    contentVisual.Size.X - viewportVisual.Size.X,
    contentVisual.Size.Y - viewportVisual.Size.Y,
    0.0f);

  _tracker.MinScale = 0.5f;
  _tracker.MaxScale = 4.0f;


  //
  // Configure the interaction source.  Enable input with inertia on all axis.
  //

  var interactionSource = VisualInteractionSource.Create(viewportVisual);

  interactionSource.PositionXSourceMode = InteractionSourceMode.EnabledWithInertia;
  interactionSource.PositionYSourceMode = InteractionSourceMode.EnabledWithInertia;
  interactionSource.ScaleSourceMode = InteractionSourceMode.EnabledWithInertia;

  _tracker.InteractionSources.Add(interactionSource);


  //
  // Bind the InteractionTracker outputs to the contentVisual.
  //

  var positionExpression = _compositor.CreateExpressionAnimation("-tracker.Position");
  positionExpression.SetReferenceParameter("tracker", _tracker);

  contentVisual.StartAnimation("Offset", positionExpression);


  var scaleExpression = _compositor.CreateExpressionAnimation("Vector3(tracker.Scale, tracker.Scale, 1.0)");

  scaleExpression.SetReferenceParameter("tracker", _tracker);

  contentVisual.StartAnimation("Scale", scaleExpression);
}

注釈

VisualInteractionSource は、InteractionTracker の状態とプロパティを駆動する必要がある対話の種類に関する重要なプロパティを定義するために使用されます。 source プロパティは、ヒット テストとジェスチャ検出の座標空間の両方に使用されます。 その結果、操作中に動かないビジュアルを使用することが重要です。 複数のヒット テスト領域がある場合、複数の VisualInteractionSource を同じ InteractionTracker に関連付けることができますが、最も一般的なケースでは、特定の InteractionTracker に対して VisualInteractionSource を 1 つだけ必要とします。

VisualInteractionSource は、InteractionTracker を駆動するために考慮する必要があるジェスチャの種類を構成するためのクラスです。 位置 X と Y は、それぞれ水平パンと垂直パンに関連付けられます。 拡大縮小はピンチ ジェスチャで検出され、多くの場合、ズームに関連付けられます。 これら 3 つのソース モードはすべて、タッチおよび高精度タッチパッド入力用に構成できます。 これらの各ソース モードは、慣性の有無にかかわらず有効にすることができます。

  • 慣性を有効にすると、慣性状態の間に、位置またはスケールが解放速度から速度なしで自然に補間されることを示します。

  • 慣性を無効にすると、操作が完了すると、位置またはスケール速度がすぐに 0 に移動することを示します。 位置またはスケールを駆動する入力が InteractionTracker にルーティングされると、同じ名前の InteractionTracker プロパティが適切に更新されます。

レールの構成は、ジェスチャがどのように検出されるかを示します。 既定では、レールは オンであり、主にその軸で起動したときに、水平パンまたは垂直パンが特定の軸にロックされることを示します。 これは手すりプロパティ ページで詳しく説明されています。

チェーン構成は、InteractionTracker がその方向の最小値または最大値に達したときに、ある VisualInteractionSource によって処理される入力を別のエンティティにフローできるかどうかを示します。 この構成により、VisualInteractionSource のソース ビジュアルが ScrollViewer の子である場合は、別の VisualInteractionSource を介して別の InteractionTracker に、または ScrollViewer に入力をチェーンできます。

バージョン履歴

Windows のバージョン SDK バージョン 追加された値
1703 15063 ConfigureCenterPointXModifiers
1703 15063 ConfigureCenterPointYModifiers
1703 15063 ConfigureDeltaPositionXModifiers
1703 15063 ConfigureDeltaPositionYModifiers
1703 15063 ConfigureDeltaScaleModifiers
1703 15063 DeltaPosition
1703 15063 DeltaScale
1703 15063 [位置]
1703 15063 PositionVelocity
1703 15063 スケール
1703 15063 ScaleVelocity
1809 17763 PointerWheelConfig
1903 18362 CreateFromIVisualElement

プロパティ

Comment

CompositionObject に関連付ける文字列。

(継承元 CompositionObject)
Compositor

この CompositionObject の作成に使用するコンポジター

(継承元 CompositionObject)
DeltaPosition

今後のフレーム中に適用される位置変更の量。 既定値は 0 です。 式/アニメーションを使用してのみ読み取り可能です。

DeltaScale

今後のフレーム中に適用されるスケール変更の量。 乗算。 既定値は 1 です。 式/アニメーションを使用してのみ読み取り可能です。

Dispatcher

CompositionObject のディスパッチャー。

(継承元 CompositionObject)
DispatcherQueue

CompostionObject の DispatcherQueue を取得します。

(継承元 CompositionObject)
ImplicitAnimations

このオブジェクトにアタッチされている暗黙的なアニメーションのコレクション。

(継承元 CompositionObject)
IsPositionXRailsEnabled

x 軸のパンが手すりになっているかどうかを示します。

IsPositionXRailsEnabled プロパティは、X 軸パンが対応する InteractionTracker に送信される場合の手すりの構成を定義します。 有効にすると、パンの最初の部分が X 軸に対して特定の範囲内で斜めになっている場合、パンの Y 成分は無視され、完全な水平パンと見なされます。 このプロパティは、多くの場合、X と Y の両方のスクロール エクスペリエンスが有効になっているが、信頼性の高い完全な水平パンが必要な場合に有効になります。

IsPositionYRailsEnabled

y 軸のパンが手すりになっているかどうかを示します。

IsPositionYRailsEnabled プロパティは、Y 軸パンが対応する InteractionTracker に送信される場合の手すりの構成を定義します。 有効にすると、パンの最初の部分が Y 軸に対して特定の範囲内に向いている場合、パンの X 成分は無視され、完全な垂直パンと見なされます。 このプロパティは、多くの場合、X と Y の両方のスクロール エクスペリエンスが有効になっているが、信頼性の高い完璧な垂直パンが必要な場合に有効になります。

ManipulationRedirectionMode

InteractionTracker にリダイレクトする必要がある入力を示します。

PointerWheelConfig

ポインター ホイール入力の構成を取得します。

Position

相互作用の開始以降の位置変更の合計量。 既定値は 0 です。 式/アニメーションを使用してのみ読み取り可能です。

PositionVelocity

相互作用の位置の瞬間的な変化率 (1 秒あたりのピクセル単位)。 既定値は 0 です。 式/アニメーションを介してのみ読み取り可能。

PositionXChainingMode

PositionXChainingMode プロパティは、InteractionSource の X 方向のチェーン動作を定義します。 InteractionChainingMode には、AutoAlwaysNever の 3 種類があります。 X 方向でのチェーンが有効になっている場合、相互作用 (パンなど) がそれ以外の場合は、InteractionTracker の位置が最小または最大 X 位置を超えるたびに、最も近い先祖の VisualInteractionSource に入力が流れ込まれます。

PositionXSourceMode

X 軸のソース モード。

PositionXSourceMode プロパティは、X 軸の VisualInteractionSource に対する相互作用の処理方法を定義します。 選択できる InteractionSourceModeには、次の 3 種類があります。相互作用は無効、EnabledWithInertia、EnabledWithoutInertia です。 VisualInteractionSource が X 軸データを InteractionTracker に送信できるようにするには、このプロパティを有効にする必要があります。

PositionYChainingMode

PositionYChainingMode プロパティは、Y 方向の InteractionSource のチェーン動作を定義します。 InteractionChainingMode には、AutoAlwaysNever の 3 種類があります。 Y 方向でのチェーンが有効になっている場合、相互作用 (パンなど) がそれ以外の場合、InteractionTracker の位置が最小または最大 Y 位置を超えるたびに、最も近い先祖の VisualInteractionSource に入力が流れ込まれます。

PositionYSourceMode

Y 軸のソース モード。

PositionYSourceMode プロパティは、Y 軸の VisualInteractionSource に対する相互作用の処理方法を定義します。 選択できる InteractionSourceModeには、次の 3 種類があります。相互作用は無効、EnabledWithInertia、EnabledWithoutInertia です。 VisualInteractionSource が Y 軸データを InteractionTracker に送信できるようにするには、このプロパティを有効にする必要があります。

Properties

CompositionObject に関連付けられているプロパティのコレクション。

(継承元 CompositionObject)
Scale

相互作用の開始以降のスケールの合計パーセンテージ差。 乗算。 既定値は 1 です。 式/アニメーションを使用してのみ読み取り可能です。

ScaleChainingMode

ScaleChainingMode プロパティは、Scale 方向の InteractionSource のチェーン動作を定義します。 InteractionChainingMode には、Auto、Always、Never の 3 種類があります。 スケール チェーンが有効になっている場合、対話 (パンなど) で InteractionTracker の位置が最小または最大スケールの位置を超えるたびに、最も近い先祖の VisualInteractionSource に入力がフローされます。

ScaleSourceMode

スケール軸上の VisualInteractionSource の相互作用の処理方法を定義します。 選択できる InteractionSourceModeには、次の 3 種類があります。相互作用は無効EnabledWithInertiaEnabledWithoutInertia です。 VisualInteractionSourceInteractionTracker にスケール データを送信できるようにするには、このプロパティを有効にする必要があります。

ScaleVelocity

対話におけるスケールの瞬間的な変化率 (1 秒あたりの割合)。 添加 物。 既定値は 0 です。 式/アニメーションを介してのみ読み取り可能。

Source

ヒット テストに使用され、ジェスチャ認識用の座標空間を定義するビジュアル。

メソッド

Close()

CompositionObject を閉じ、システム リソースを解放します。

(継承元 CompositionObject)
ConfigureCenterPointXModifiers(IIterable<CompositionConditionalValue>)

CompositionConditionalValue の順序付きリストを取得します。 フレーム内で、最初の CompositionConditionalValue は、 を持っています。条件" は true に評価され、VisualInteractionSource によって提供されるズーム CenterPointX 値に置き換えられます。値"。 true と評価されない場合、CenterPointX はそのフレームに置き換えされません。

ConfigureCenterPointYModifiers(IIterable<CompositionConditionalValue>)

CompositionConditionalValue の順序付きリストを取得します。 フレーム内で、最初の CompositionConditionalValue は、 を持っています。条件" は true に評価され、VisualInteractionSource が提供するズーム CenterPointY 値に置き換えられます。値"。 true と評価されない場合、CenterPointY はそのフレームに置き換えされません。

ConfigureDeltaPositionXModifiers(IIterable<CompositionConditionalValue>)

CompositionConditionalValue の順序付きリストを取得します。 フレーム内で、最初の CompositionConditionalValue は、 を持っています。Condition" は true に評価され、VisualInteractionSource が提供する DeltaPositionX 値を その に置き換えます。値"。 true と評価されない場合、DeltaPositionX はそのフレームに置き換えされません。

ConfigureDeltaPositionYModifiers(IIterable<CompositionConditionalValue>)

CompositionConditionalValue の順序付きリストを取得します。 フレーム内で、最初の CompositionConditionalValue は、 を持っています。Condition" は true に評価され、VisualInteractionSource が提供する DeltaPositionY 値を その に置き換えます。値"。 true と評価されない場合、DeltaPositionY はそのフレームに置き換えされません。

ConfigureDeltaScaleModifiers(IIterable<CompositionConditionalValue>)

CompositionConditionalValue の順序付きリストを取得します。 フレーム内で、最初の CompositionConditionalValue は、 を持っています。Condition" は true に評価され、VisualInteractionSource が提供する DeltaScale 値を その に置き換えます。値"。 true と評価されない場合、DeltaScale はそのフレームに置き換えされません。

ConnectAnimation(String, CompositionAnimation)

接続とアニメーション。

(継承元 CompositionObject)
Create(Visual)

VisualInteractionSource のインスタンスを作成します。

CreateFromIVisualElement(IVisualElement)

IVisualElement を実装する要素から VisualInteractionSource のインスタンスを作成します。

DisconnectAnimation(String)

アニメーションを切断します。

(継承元 CompositionObject)
Dispose()

アンマネージ リソースの解放またはリセットに関連付けられているアプリケーション定義のタスクを実行します。

(継承元 CompositionObject)
PopulatePropertyInfo(String, AnimationPropertyInfo)

アニメーション化できるプロパティを定義します。

(継承元 CompositionObject)
StartAnimation(String, CompositionAnimation)

アニメーションをオブジェクトの指定したプロパティに接続し、アニメーションを開始します。

(継承元 CompositionObject)
StartAnimation(String, CompositionAnimation, AnimationController)

アニメーションをオブジェクトの指定したプロパティに接続し、アニメーションを開始します。

(継承元 CompositionObject)
StartAnimationGroup(ICompositionAnimationBase)

アニメーション グループを開始します。

CompositionObject の StartAnimationGroup メソッドを使用すると、CompositionAnimationGroup を開始できます。 グループ内のすべてのアニメーションは、オブジェクトで同時に開始されます。

(継承元 CompositionObject)
StopAnimation(String)

指定したプロパティからアニメーションを切断し、アニメーションを停止します。

(継承元 CompositionObject)
StopAnimationGroup(ICompositionAnimationBase)

アニメーション グループを停止します。

(継承元 CompositionObject)
TryGetAnimationController(String)

指定したプロパティで実行されているアニメーションの AnimationController を返します。

(継承元 CompositionObject)
TryRedirectForManipulation(PointerPoint)

指定されたポインター ストリームに対して構成された操作を、指定された PointerPoint から開始して、アプリの UI スレッドではなく InteractionTracker に送信する必要があることを示します。

TryRedirectForManipulation を使用すると、ジェスチャが VisualInteractionSource の構成と一致する場合、VisualInteractionSource はポインター ストリームを InteractionTracker にリダイレクトできます。 このメソッドは、DeviceType Touch のポインター入力でのみ呼び出す必要があります。

適用対象

こちらもご覧ください