VisualInteractionSource クラス

定義

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

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

[WebHostHidden]
public ref class VisualInteractionSource : CompositionObject, ICompositionInteractionSource
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Foundation.LiftedContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[WebHostHidden]
class VisualInteractionSource : CompositionObject, ICompositionInteractionSource
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Foundation.WindowsAppSDKContract, 65536)]
[WebHostHidden]
class VisualInteractionSource : CompositionObject, ICompositionInteractionSource
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Foundation.LiftedContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class VisualInteractionSource : CompositionObject, ICompositionInteractionSource
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Foundation.WindowsAppSDKContract), 65536)]
public class VisualInteractionSource : CompositionObject, ICompositionInteractionSource
Public Class VisualInteractionSource
Inherits CompositionObject
Implements ICompositionInteractionSource
継承
Object Platform::Object IInspectable CompositionObject VisualInteractionSource
属性
実装

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

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

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

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

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

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

プロパティ

名前 説明
Comment

CompositionObject に関連付ける文字列。

(継承元 CompositionObject)
Compositor

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

(継承元 CompositionObject)
DeltaPosition

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

DeltaScale

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

DispatcherQueue

CompositionObject の 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

相互作用内の位置の瞬時変化率 (ピクセル/秒)。 既定値は 0 です。 式/アニメーションでのみ読み取り可能です。

PositionXChainingMode

PositionXChainingMode プロパティは、InteractionSource のチェーン動作を X 方向に定義します。 InteractionChainingMode には、次の 3 種類があります。

  • 自動
  • 常に
  • しない

X 方向でのチェーンが有効になっている場合、相互作用 (パンなど) が InteractionTracker の位置を最小または最大 X 位置を超えると、入力は最も近い先祖の VisualInteractionSource に送られます。

PositionXSourceMode

X 軸のソース モード。

PositionXSourceMode プロパティは、X 軸の VisualInteractionSource に対する相互作用の処理方法を定義します。 InteractionSourceMode には、次の 3 種類から選択できます。

  • 相互作用が無効になっている
  • EnabledWithInertia
  • EnabledWithoutInertia

VisualInteractionSourceInteractionTracker に X 軸データを送信できるようにするには、このプロパティを有効にする必要があります。

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 種類から選択できます。

  • Disabled
  • EnabledWithInertia
  • EnabledWithoutInertia

VisualInteractionSourceInteractionTracker にスケール データを送信できるようにするには、このプロパティを有効にする必要があります。

ScaleVelocity

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

Source

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

メソッド

名前 説明
Close()

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

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

CompositionConditionalValue オブジェクトの順序付きリストを取得します。 フレーム内で、Condition プロパティが true を返す最初のCompositionConditionalValue、Composition.Visual.CenterPoint X 値を CompositionConditionalValue.Value プロパティによって指定された値に置き換えます。 true と評価されない場合、そのフレームの Composition.Visual.CenterPoint X 値は置き換えされません。

ConfigureCenterPointYModifiers(IIterable<CompositionConditionalValue>)

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

ConfigureDeltaPositionXModifiers(IIterable<CompositionConditionalValue>)

CompositionConditionalValue オブジェクトの順序付きリストを取得します。 フレーム内で、最初に Condition プロパティが true を返すCompositionConditionalValue、DeltaPosition 値を CompositionConditionalValue.Value プロパティによって指定された値に置き換えます。 true と評価されない場合、そのフレームの DeltaPosition 値は置き換えされません。

ConfigureDeltaPositionYModifiers(IIterable<CompositionConditionalValue>)

CompositionConditionalValue オブジェクトの順序付きリストを取得します。 フレーム内で、最初に Condition プロパティが true を返すCompositionConditionalValue、DeltaPosition Y 値を CompositionConditionalValue.Value プロパティによって指定された値に置き換えます。 true と評価されない場合、そのフレームの DeltaPosition Y 値は置き換えされません。

ConfigureDeltaScaleModifiers(IIterable<CompositionConditionalValue>)

CompositionConditionalValue オブジェクトの順序付きリストを取得します。 フレーム内で、Condition プロパティが true を返す最初のCompositionConditionalValueは、DeltaScale 値を CompositionConditionalValue.Value プロパティによって指定された値に置き換えます。 true と評価されない場合、そのフレームの DeltaScale は置き換えされません。

Create(Visual)

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

CreateFromIVisualElement(IVisualElement)

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

Dispose()

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

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

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

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

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

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

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

(継承元 CompositionObject)
StartAnimationGroup(ICompositionAnimationBase)

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

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

(継承元 CompositionObject)
StopAnimation(String)

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

(継承元 CompositionObject)
StopAnimationGroup(ICompositionAnimationBase)

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

(継承元 CompositionObject)
TryGetAnimationController(String)

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

(継承元 CompositionObject)
TryRedirectForManipulation(ExpPointerPoint)

特定のポインター ストリームに対して構成された操作を、指定された ExpPointerPoint から開始して、アプリの UI スレッドではなく InteractionTracker に送信しようとします。

Important

このメソッドは、Touch の PointerDeviceType でのみ呼び出す必要があります。

TryRedirectForManipulation(PointerPoint)

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

Important

このメソッドは、Touch の PointerDeviceType でのみ呼び出す必要があります。

適用対象

こちらもご覧ください