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

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

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

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

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

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

(다음에서 상속됨 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

상호 작용에서 위치 변경의 즉각적인 속도(초당 픽셀)입니다. 기본값은 0입니다. 식/애니메이션을 통해서만 읽기 가능합니다.

PositionXChainingMode

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

PositionXSourceMode

X축의 소스 모드입니다.

PositionXSourceMode 속성은 X축의 VisualInteractionSource 에 대한 상호 작용을 처리하는 방법을 정의합니다. InteractionSourceMode에는 3가지 유형 중에서 선택할 수 있습니다. 상호 작용은 사용 안 함, EnabledWithInertia 및 EnabledWithoutInertia입니다. VisualInteractionSource가 X축 데이터를 InteractionTracker로 보낼 수 있도록 하려면 이 속성을 사용하도록 설정해야 합니다.

PositionYChainingMode

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

PositionYSourceMode

Y축의 소스 모드입니다.

PositionYSourceMode 속성은 Y축의 VisualInteractionSource 에 대한 상호 작용을 처리하는 방법을 정의합니다. InteractionSourceMode에는 3가지 유형 중에서 선택할 수 있습니다. 상호 작용은 사용 안 함, EnabledWithInertia 및 EnabledWithoutInertia입니다. VisualInteractionSourceInteractionTracker에 Y축 데이터를 보낼 수 있도록 하려면 이 속성을 사용하도록 설정해야 합니다.

Properties

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

(다음에서 상속됨 CompositionObject)
Scale

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

ScaleChainingMode

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

ScaleSourceMode

배율 축에서 VisualInteractionSource 에 대한 상호 작용을 처리하는 방법을 정의합니다. 선택할 수 있는 InteractionSourceMode의 유형은 3가지입니다. 상호 작용은 사용 안 함, EnabledWithInertiaEnabledWithoutInertia 입니다. VisualInteractionSourceInteractionTracker에 크기 조정 데이터를 보낼 수 있도록 하려면 이 속성을 사용하도록 설정해야 합니다.

ScaleVelocity

상호 작용에서 스케일링의 즉각적인 변화 속도(초당 백분율)입니다. 첨가제. 기본값은 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에 "가 있습니다. 조건"이 true로 평가하면 VisualInteractionSource에서 제공하는 DeltaPositionX 값이 "로 바뀝니다. 값"입니다. none이 true로 평가되지 않으면 DeltaPositionX가 해당 프레임으로 대체되지 않습니다.

ConfigureDeltaPositionYModifiers(IIterable<CompositionConditionalValue>)

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

ConfigureDeltaScaleModifiers(IIterable<CompositionConditionalValue>)

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

ConnectAnimation(String, CompositionAnimation)

연결 및 애니메이션.

(다음에서 상속됨 CompositionObject)
Create(Visual)

VisualInteractionSource의 instance 만듭니다.

CreateFromIVisualElement(IVisualElement)

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

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에서 Pointer 스트림을 InteractionTracker로 리디렉션할 수 있습니다. 이 메서드는 DeviceType Touch의 포인터 입력으로만 호출해야 합니다.

적용 대상

추가 정보