다음을 통해 공유


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의 상태 및 속성을 구동해야 하는 상호 작용 유형에 대한 중요한 속성을 정의하는 데 사용됩니다. 소스 속성은 적중 테스트뿐만 아니라 제스처 감지를 위한 좌표 공간에도 사용됩니다. 따라서 조작 중에 동작하지 않을 시각적 개체를 사용하는 것이 중요합니다. 적중 테스트 지역이 여러 개 있는 경우 여러 VisualInteractionSources를 동일한 InteractionTracker와 연결할 수 있지만 가장 일반적인 경우 지정된 InteractionTracker에 대해 하나의 VisualInteractionSource만 필요합니다.

VisualInteractionSource는 InteractionTracker를 구동하기 위해 고려해야 하는 제스처 유형을 구성하는 클래스입니다. 위치 X와 Y는 각각 가로 및 세로 이동과 연결됩니다. 크기 조정은 종종 확대/축소와 관련된 손가락 모으기 제스처로 검색됩니다. 이러한 세 가지 소스 모드는 모두 터치 및 정밀 터치패드 입력에 대해 구성할 수 있습니다. 이러한 각 소스 모드는 관성 여부에 관계없이 사용하도록 설정할 수 있습니다.

  • 관성을 사용하도록 설정하면 위치 또는 소수 자릿수가 관성 상태 동안 릴리스 속도에서 속도 없음으로 자연스럽게 보간됨을 나타냅니다.

  • 관성을 사용하지 않도록 설정하면 상호 작용이 완료되면 위치 또는 배율 속도가 즉시 0으로 이동함을 나타냅니다. 위치 또는 배율을 구동하는 입력이 InteractionTracker로 라우팅되면 동일한 이름의 InteractionTracker 속성이 적절하게 업데이트됩니다.

레일 구성은 제스처가 검색되는 방법을 나타냅니다. 기본적으로 레일은 켜지고 가로 또는 세로 이동이 주로 해당 축에서 시작될 때 특정 축에 잠기도록 나타냅니다. 이 내용은 난간 속성 페이지에 자세히 설명되어 있습니다.

연결 구성은 InteractionTracker가 해당 방향으로 최소 또는 최대값에 도달할 때 한 VisualInteractionSource에서 처리하는 입력이 다른 엔터티로 흐를 수 있는지 여부를 나타냅니다. 이 구성을 사용하면 입력이 다른 VisualInteractionSource를 통해 다른 InteractionTracker에 연결되거나 VisualInteractionSource의 원본 시각적 개체가 ScrollViewer의 자식인 경우 ScrollViewer에 연결할 수 있습니다.

속성

Comment

CompositionObject와 연결할 문자열입니다.

(다음에서 상속됨 CompositionObject)
Compositor

CompositionObject를 만드는 데 사용되는 Compositor입니다.

(다음에서 상속됨 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 유형에는 세 가지가 있습니다.

  • 자동
  • Always
  • Never

X 방향으로 연결이 사용하도록 설정되면 상호 작용(예: 이동)이 InteractionTracker의 위치를 최소 또는 최대 X 위치를 지나갈 때마다 입력이 가장 가까운 상위 항목의 VisualInteractionSource로 흐릅니다.

PositionXSourceMode

X축의 소스 모드입니다.

PositionXSourceMode 속성은 X축에서 VisualInteractionSource 에 대한 상호 작용을 처리하는 방법을 정의합니다. 다음 세 가지 InteractionSourceMode 유형 중에서 선택할 수 있습니다.

  • 상호 작용을 사용할 수 없음
  • EnabledWithInertia
  • EnabledWithoutInertia

VisualInteractionSource가 X축 데이터를 InteractionTracker에 보낼 수 있도록 하려면 이 속성을 사용하도록 설정해야 합니다.

PositionYChainingMode

PositionYChainingMode 속성은 InteractionSource의 연결 동작을 Y 방향으로 정의합니다. InteractionChainingMode의 세 가지 유형은 Auto , Always , Never입니다. Y 방향으로 연결이 사용하도록 설정되면 상호 작용(예: 이동)이 InteractionTracker의 위치를 최소 또는 최대 Y 위치를 지나갈 때마다 입력이 가장 가까운 상위 항목의 VisualInteractionSource로 흐릅니다.

PositionYSourceMode

Y축의 소스 모드입니다.

PositionYSourceMode 속성은 Y축에서 VisualInteractionSource 에 대한 상호 작용을 처리하는 방법을 정의합니다. 다음 세 가지 InteractionSourceMode 유형 중에서 선택할 수 있습니다.

  • 상호 작용을 사용할 수 없음
  • EnabledWithInertia
  • EnabledWithoutInertia

VisualInteractionSourceInteractionTracker에 Y축 데이터를 보낼 수 있도록 하려면 이 속성을 사용하도록 설정해야 합니다.

Properties

CompositionObject와 연결된 속성의 컬렉션입니다.

(다음에서 상속됨 CompositionObject)
Scale

상호 작용이 시작된 이후의 총 비율 차이입니다. 곱셈. 기본값은 1입니다. 식/애니메이션을 통해서만 읽을 수 있습니다.

ScaleChainingMode

ScaleChainingMode 속성은 Scale 방향으로 InteractionSource에 대한 연결 동작을 정의합니다. InteractionChainingMode에는 Auto, Always, Never의 세 가지 유형이 있습니다. 크기 조정 체인을 사용하도록 설정하면 상호 작용(예: 이동)이 InteractionTracker의 최소 또는 최대 배율 위치를 지나갈 때마다 입력이 가장 가까운 상위 항목의 VisualInteractionSource로 흐릅니다.

ScaleSourceMode

배율 축에서 VisualInteractionSource 에 대한 상호 작용을 처리하는 방법을 정의합니다. 다음 세 가지 InteractionSourceMode 유형 중에서 선택할 수 있습니다.

  • 사용 안 함
  • EnabledWithInertia
  • EnabledWithoutInertia

VisualInteractionSourceInteractionTracker에 크기 조정 데이터를 보낼 수 있도록 하려면 이 속성을 사용하도록 설정해야 합니다.

ScaleVelocity

상호 작용에서 스케일링의 즉각적인 변화 속도(초당 백분율)입니다. 첨가제. 기본값은 0입니다. 식/애니메이션을 통해서만 읽기 가능합니다.

Source

적중 테스트에 사용되고 제스처 인식을 위한 조정 공간을 정의하는 시각적 개체입니다.

메서드

Close()

CompositionObject를 닫고 시스템 리소스를 해제합니다.

(다음에서 상속됨 CompositionObject)
ConfigureCenterPointXModifiers(IIterable<CompositionConditionalValue>)

CompositionConditionalValue의 순서가 지정된 목록을 사용합니다. 프레임에서 첫 번째 CompositionConditionalValue에 "가 있습니다. 조건"이 true로 평가하면 VisualInteractionSource에서 제공하는 zoom CenterPointX 값이 "로 바뀝니다. Value"입니다. 없음이 true로 평가되면 CenterPointX가 해당 프레임으로 대체되지 않습니다.

ConfigureCenterPointYModifiers(IIterable<CompositionConditionalValue>)

CompositionConditionalValue의 순서가 지정된 목록을 사용합니다. 프레임에서 첫 번째 CompositionConditionalValue에 "가 있습니다. 조건"이 true로 평가하면 VisualInteractionSource에서 제공하는 zoom CenterPointY 값이 "로 바뀝니다. Value"입니다. 없음이 true로 평가되면 CenterPointY가 해당 프레임으로 대체되지 않습니다.

ConfigureDeltaPositionXModifiers(IIterable<CompositionConditionalValue>)

CompositionConditionalValue의 순서가 지정된 목록을 사용합니다. 프레임에서 첫 번째 CompositionConditionalValue에 "가 있습니다. Condition"은 True로 평가되며 VisualInteractionSource에서 제공하는 DeltaPositionX 값이 "로 바뀝니다. Value"입니다. 없음이 true로 평가되면 DeltaPositionX가 해당 프레임으로 대체되지 않습니다.

ConfigureDeltaPositionYModifiers(IIterable<CompositionConditionalValue>)

CompositionConditionalValue의 순서가 지정된 목록을 사용합니다. 프레임에서 첫 번째 CompositionConditionalValue에 "가 있습니다. Condition"은 VisualInteractionSource에서 제공하는 DeltaPositionY 값을 "로 대체합니다. Value"입니다. 없음이 true로 평가되면 DeltaPositionY가 해당 프레임으로 대체되지 않습니다.

ConfigureDeltaScaleModifiers(IIterable<CompositionConditionalValue>)

CompositionConditionalValue의 순서가 지정된 목록을 사용합니다. 프레임에서 첫 번째 CompositionConditionalValue에 "가 있습니다. Condition"은 VisualInteractionSource에서 제공하는 DeltaScale 값을 "로 대체합니다. Value"입니다. 없음이 true로 평가되면 DeltaScale이 해당 프레임으로 대체되지 않습니다.

Create(Visual)

VisualInteractionSource의 instance 만듭니다.

CreateFromIVisualElement(IVisualElement)

IVisualElement를 구현하는 요소에서 VisualInteractionSource의 instance 만듭니다.

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)

시각적 개체를 기준으로 InteractionTracker에 대한 입력을 구성하기 위한 개체입니다.

VisualInteractionSource는 InteractionTracker 에서만 사용하도록 설계되었으며 해당 상태 및 속성을 구동하기 위해 InteractionTracker 로 전송될 입력을 정의합니다. 이 클래스에는 적중 테스트에 사용할 시각적 개체와 InteractionTracker에 제스처 및 입력 유형이 전송되는 다양한 구성 속성이 모두 포함되어 있습니다.

TryRedirectForManipulation(PointerPoint)

지정된 포인터 포인트에서 시작하여 앱의 UI 스레드가 아닌 InteractionTracker에 지정된 포인터 스트림에 대해 구성된 조작을 보내려고 시도 합니다.

중요

이 메서드는 Touch의 PointerDeviceType 으로만 호출해야 합니다.

적용 대상

추가 정보