Compartilhar via


VisualInteractionSource Classe

Definição

Objeto para configurar a entrada para o InteractionTracker em relação a um visual.

O VisualInteractionSource foi projetado para ser usado apenas com InteractionTracker e define qual entrada será enviada ao InteractionTracker para impulsionar seu estado e propriedades. Essa classe contém o visual a ser usado para teste de clique, bem como uma variedade de propriedades de configuração para as quais gestos e tipos de entrada serão enviados para o 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
Herança
Object Platform::Object IInspectable CompositionObject VisualInteractionSource
Atributos
Implementações

Requisitos do Windows

Família de dispositivos
Windows 10 Anniversary Edition (introduzida na 10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v3.0)

Exemplos

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);
}

Comentários

O VisualInteractionSource é usado para definir propriedades importantes sobre os tipos de interações que devem impulsionar o estado e as propriedades do InteractionTracker. A propriedade de origem é usada para teste de clique, bem como o espaço de coordenadas para detecção de gestos. Como resultado, é importante usar um Visual que não estará em movimento durante a manipulação. Vários VisualInteractionSources podem ser associados ao mesmo InteractionTracker se houver várias regiões de teste de clique, mas os casos mais comuns exigem apenas um VisualInteractionSource para um determinado InteractionTracker.

VisualInteractionSource é a classe para configurar quais tipos de gestos devem ser considerados para conduzir o InteractionTracker. As posições X e Y estão associadas ao movimento panorâmico horizontal e vertical, respectivamente. A escala é detectada com um gesto de pinçagem, geralmente associado ao zoom. Esses três modos de origem são configuráveis para entrada touch e Precision Touchpad. Cada um desses modos de origem pode ser habilitado com ou sem inércia:

  • Habilitar a inércia indica que a posição ou a escala serão naturalmente interpoladas da velocidade de liberação para nenhuma velocidade durante o estado de inércia.

  • Desabilitar a inércia indica que a velocidade de posição ou escala irá imediatamente para 0 após a conclusão da interação. Quando a entrada que direciona a posição ou a escala é roteada para o InteractionTracker, a propriedade InteractionTracker de mesmo nome será atualizada adequadamente.

As configurações de trilhos indicam como o gesto será detectado. Os trilhos, por padrão, estão ativados e indicam que a panela horizontal ou vertical será bloqueada para um eixo específico quando iniciada principalmente nesse eixo. Isso é explicado mais detalhadamente nas páginas de propriedades de grade.

A configuração de encadeamento indica se a entrada processada por um VisualInteractionSource pode fluir para outra entidade quando o InteractionTracker atinge o mínimo ou o máximo nessa direção. Essa configuração permitirá que a entrada encadeie para outro InteractionTracker por meio de outro VisualInteractionSource ou para um ScrollViewer se o visual de origem do VisualInteractionSource for filho do ScrollViewer.

Histórico de versão

Versão do Windows Versão do SDK Valor adicionado
1703 15063 ConfigureCenterPointXModifiers
1703 15063 ConfigureCenterPointYModifiers
1703 15063 ConfigureDeltaPositionXModifiers
1703 15063 ConfigureDeltaPositionYModifiers
1703 15063 ConfigureDeltaScaleModifiers
1703 15063 DeltaPosition
1703 15063 DeltaScale
1703 15063 Posição
1703 15063 PositionVelocity
1703 15063 Escala
1703 15063 ScaleVelocity
1809 17763 PointerWheelConfig
1903 18362 CreateFromIVisualElement

Propriedades

Comment

Uma cadeia de caracteres a ser associada ao CompositionObject.

(Herdado de CompositionObject)
Compositor

O Compositor usado para criar esse CompositionObject.

(Herdado de CompositionObject)
DeltaPosition

A quantidade de alteração de posição a ser aplicada durante o próximo quadro. Assume o padrão de 0. Legível somente por meio de expressão/animação.

DeltaScale

A quantidade de alteração de escala a ser aplicada durante o próximo quadro. Multiplicativo. O valor padrão é 1. Legível somente por meio de expressão/animação.

Dispatcher

O dispatcher para CompositionObject.

(Herdado de CompositionObject)
DispatcherQueue

Obtém o DispatcherQueue para o CompostionObject.

(Herdado de CompositionObject)
ImplicitAnimations

A coleção de animações implícitas anexadas a esse objeto.

(Herdado de CompositionObject)
IsPositionXRailsEnabled

Indica se o movimento panorâmico no eixo x está limitado.

A propriedade IsPositionXRailsEnabled define a configuração de grade para quando o movimento panorâmico do eixo X é enviado para o InteractionTracker correspondente. Quando habilitada, se a parte inicial da panela for angulada em um intervalo específico em relação ao eixo X, o componente Y da panela será ignorado e considerado uma panela horizontal perfeita. Essa propriedade geralmente é habilitada em situações em que uma experiência de rolagem X e Y está habilitada, mas também requer um movimento panorâmico horizontal confiável e perfeito.

IsPositionYRailsEnabled

Indica se o movimento panorâmico no eixo y está gradeado.

A propriedade IsPositionYRailsEnabled define a configuração de grade para quando o movimento panorâmico do eixo Y é enviado para o InteractionTracker correspondente. Quando habilitado, se a parte inicial da panela for angulada em um intervalo específico em relação ao eixo Y, o componente X da panela será ignorado e considerado uma panela vertical perfeita. Essa propriedade geralmente é habilitada em situações em que uma experiência de rolagem X e Y está habilitada, mas também requer um movimento panorâmico vertical confiável e perfeito.

ManipulationRedirectionMode

Indica qual entrada deve ser redirecionada para o InteractionTracker.

PointerWheelConfig

Obtém a configuração para entrada de roda de ponteiro.

Position

A quantidade total de alteração de posição desde o início da interação. Assume o padrão de 0. Legível somente por meio de expressão/animação.

PositionVelocity

A taxa instantânea de alteração de posição na interação, em pixels por segundo. Assume o padrão de 0. Legível somente por meio de expressão/animação.

PositionXChainingMode

A propriedade PositionXChainingMode define o comportamento de encadeamento de um InteractionSource na direção X. Há três tipos de InteractionChainingMode s: Auto , Always , Never . Quando o encadeamento na direção X estiver habilitado, a entrada fluirá para o VisualInteractionSource do ancestral mais próximo sempre que a interação (como o movimento panorâmico) tomar a posição do InteractionTracker após sua posição mínima ou máxima X.

PositionXSourceMode

Modo de origem para o eixo X.

A propriedade PositionXSourceMode define como as interações são processadas para um VisualInteractionSource no eixo X. Há três tipos de InteractionSourceModes para escolher: As interações são desabilitadas, EnabledWithInertia e EnabledWithoutInertia. Essa propriedade deve ser habilitada para permitir que o VisualInteractionSource envie dados do eixo X para InteractionTracker.

PositionYChainingMode

A propriedade PositionYChainingMode define o comportamento de encadeamento para um InteractionSource na direção Y. Há três tipos de InteractionChainingMode s: Auto , Always , Never . Quando o encadeamento na direção Y estiver habilitado, a entrada fluirá para o VisualInteractionSource do ancestral mais próximo sempre que a interação (como o movimento panorâmico) tomar a posição do InteractionTracker após sua posição mínima ou máxima Y.

PositionYSourceMode

Modo de origem para o eixo Y.

A propriedade PositionYSourceMode define como as interações são processadas para um VisualInteractionSource no eixo Y. Há três tipos de InteractionSourceModes para escolher: As interações são desabilitadas, EnabledWithInertia e EnabledWithoutInertia. Essa propriedade deve ser habilitada para permitir que o VisualInteractionSource envie dados do eixo Y para InteractionTracker.

Properties

A coleção de propriedades associadas ao CompositionObject.

(Herdado de CompositionObject)
Scale

A diferença percentual total em escala desde o início da interação. Multiplicativo. O valor padrão é 1. Legível somente por meio de expressão/animação.

ScaleChainingMode

A propriedade ScaleChainingMode define o comportamento de encadeamento de um InteractionSource na direção Escala. Há três tipos de InteractionChainingMode s: Auto, Always, Never. Quando o encadeamento de escala estiver habilitado, a entrada fluirá para o VisualInteractionSource do ancestral mais próximo sempre que a interação (como o movimento panorâmico) assumir a posição do InteractionTracker após a posição mínima ou máxima de Escala.

ScaleSourceMode

Define como as interações são processadas para um VisualInteractionSource no eixo de escala. Há três tipos de InteractionSourceModes para escolher: Interações são Desabilitadas , EnabledWithInertia e EnabledWithoutInertia . Essa propriedade deve ser habilitada para permitir que o VisualInteractionSource envie dados de escala para InteractionTracker.

ScaleVelocity

A taxa instantânea de alteração de escala na interação, em porcentagem por segundo. Aditivo. Assume o padrão de 0. Legível somente por meio de expressão/animação.

Source

O visual usado para teste de clique e define o espaço de coordenação para o reconhecimento de gestos.

Métodos

Close()

Fecha o CompositionObject e libera os recursos do sistema.

(Herdado de CompositionObject)
ConfigureCenterPointXModifiers(IIterable<CompositionConditionalValue>)

Usa uma lista ordenada de CompositionConditionalValue. Em um quadro, o primeiro CompositionConditionalValue a ter seu ". Condition" evaluate to true substitui o valor de zoom CenterPointX que o VisualInteractionSource fornece com seu ". Valor". Se nenhum for avaliado como true, o CenterPointX não será substituído por esse quadro.

ConfigureCenterPointYModifiers(IIterable<CompositionConditionalValue>)

Usa uma lista ordenada de CompositionConditionalValue. Em um quadro, o primeiro CompositionConditionalValue a ter seu ". Condition" evaluate to true substitui o valor de zoom CenterPointY que o VisualInteractionSource fornece com seu ". Valor". Se nenhum for avaliado como true, o CenterPointY não será substituído por esse quadro.

ConfigureDeltaPositionXModifiers(IIterable<CompositionConditionalValue>)

Usa uma lista ordenada de CompositionConditionalValue. Em um quadro, o primeiro CompositionConditionalValue a ter seu ". Condition" evaluate to true substitui o valor DeltaPositionX que o VisualInteractionSource fornece com seu ". Valor". Se nenhum for avaliado como true, o DeltaPositionX não será substituído por esse quadro.

ConfigureDeltaPositionYModifiers(IIterable<CompositionConditionalValue>)

Usa uma lista ordenada de CompositionConditionalValue. Em um quadro, o primeiro CompositionConditionalValue a ter seu ". Condition" evaluate to true substitui o valor DeltaPositionY que o VisualInteractionSource fornece com seu ". Valor". Se nenhum for avaliado como true, o DeltaPositionY não será substituído por esse quadro.

ConfigureDeltaScaleModifiers(IIterable<CompositionConditionalValue>)

Usa uma lista ordenada de CompositionConditionalValue. Em um quadro, o primeiro CompositionConditionalValue a ter seu ". Condition" evaluate to true substitui o valor DeltaScale que o VisualInteractionSource fornece por seu ". Valor". Se nenhum for avaliado como true, o DeltaScale não será substituído por esse quadro.

ConnectAnimation(String, CompositionAnimation)

Conecta e animação.

(Herdado de CompositionObject)
Create(Visual)

Cria uma instância do VisualInteractionSource.

CreateFromIVisualElement(IVisualElement)

Cria uma instância do VisualInteractionSource de um elemento que implementa IVisualElement.

DisconnectAnimation(String)

Desconecta uma animação.

(Herdado de CompositionObject)
Dispose()

Realiza tarefas definidas pelo aplicativo associadas à liberação ou à redefinição de recursos não gerenciados.

(Herdado de CompositionObject)
PopulatePropertyInfo(String, AnimationPropertyInfo)

Define uma propriedade que pode ser animada.

(Herdado de CompositionObject)
StartAnimation(String, CompositionAnimation, AnimationController)

Conecta uma animação com a propriedade especificada do objeto e inicia a animação.

(Herdado de CompositionObject)
StartAnimation(String, CompositionAnimation)

Conecta uma animação com a propriedade especificada do objeto e inicia a animação.

(Herdado de CompositionObject)
StartAnimationGroup(ICompositionAnimationBase)

Inicia um grupo de animação.

O método StartAnimationGroup em CompositionObject permite iniciar CompositionAnimationGroup. Todas as animações no grupo serão iniciadas ao mesmo tempo no objeto .

(Herdado de CompositionObject)
StopAnimation(String)

Desconecta uma animação da propriedade especificada e interrompe a animação.

(Herdado de CompositionObject)
StopAnimationGroup(ICompositionAnimationBase)

Interrompe um grupo de animação.

(Herdado de CompositionObject)
TryGetAnimationController(String)

Retorna um AnimationController para a animação em execução na propriedade especificada.

(Herdado de CompositionObject)
TryRedirectForManipulation(PointerPoint)

Indica que as manipulações configuradas para o fluxo de ponteiro fornecido devem ser enviadas para o InteractionTracker, não para o thread de interface do usuário do aplicativo, começando no PointerPoint fornecido.

TryRedirectForManipulation permite que o VisualInteractionSource redirecione o fluxo de ponteiro para o InteractionTracker se o gesto corresponder à configuração no VisualInteractionSource. Esse método só deve ser chamado com a entrada Pointer do DeviceType Touch.

Aplica-se a

Confira também