Поделиться через


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 используется как для проверки попадания, так и для координатного пространства для обнаружения жестов. Поэтому важно использовать визуальный элемент, который не будет находиться в движении во время манипуляции. Несколько VisualInteractionSources могут быть связаны с одним и тем же InteractionTracker, если есть несколько областей проверки попадания, но в наиболее распространенных случаях требуется только один VisualInteractionSource для заданного InteractionTracker.

VisualInteractionSource — это класс для настройки типов жестов, которые следует учитывать при управлении InteractionTracker. Позиции X и Y связаны с горизонтальным и вертикальным сдвигом соответственно. Масштабирование обнаруживается с помощью жеста сжатия, часто связанного с масштабированием. Все эти три режима источника можно настроить для сенсорного ввода и точной сенсорной панели. Каждый из этих режимов источника можно включить с инерцией или без нее:

  • Включение инерции указывает, что положение или шкала естественным образом интерполируются от скорости выпуска до без скорости во время состояния инерции.

  • Отключение инерции означает, что скорость положения или шкалы сразу же перейдет к 0 после завершения взаимодействия. Когда входные данные, которые определяют положение или масштабирование, направляются в InteractionTracker, свойство InteractionTracker с тем же именем будет обновлено соответствующим образом.

Конфигурации направляющих указывают, как будет обнаружен жест. По умолчанию направляющие включено и указывает, что горизонтальный или вертикальный сдвиг будет блокироваться на определенной оси при запуске в основном на этой оси. Более подробно это объясняется на страницах свойств перил.

Конфигурация цепочки указывает, могут ли входные данные, обрабатываемые одним элементом VisualInteractionSource, передаваться в другую сущность, когда InteractionTracker достигает минимального или максимального значения в этом направлении. Эта конфигурация позволит ввести данные в цепочку либо с другим InteractionTracker через другой Объект VisualInteractionSource, либо с ScrollViewer, если исходный визуальный элемент VisualInteractionSource является дочерним элементом 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 Position
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

Возвращает dispatcherQueue для объекта CompostionObject.

(Унаследовано от 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, входные данные будут поступать в VisualInteractionSource ближайшего предка всякий раз, когда взаимодействие (например, сдвиг) в противном случае займет позицию InteractionTracker после минимальной или максимальной позиции X.

PositionXSourceMode

Режим источника для оси X.

Свойство PositionXSourceMode определяет, как обрабатываются взаимодействия для VisualInteractionSource на оси X. Существует 3 типа объектов InteractionSourceModeна выбор: "Отключено", "EnabledWithInertia" и "EnabledWithoutInertia". Это свойство должно быть включено, чтобы разрешить VisualInteractionSource отправлять данные оси X в InteractionTracker.

PositionYChainingMode

Свойство PositionYChainingMode определяет поведение цепочки для Объекта InteractionSource в направлении Y. Существует три типа объектов InteractionChainingMode : Auto , Always и Never . Если включена цепочка в направлении Y, входные данные будут поступать в VisualInteractionSource ближайшего предка всякий раз, когда взаимодействие (например, сдвиг) в противном случае займет позицию InteractionTracker после минимальной или максимальной позиции Y.

PositionYSourceMode

Режим источника для оси Y.

Свойство PositionYSourceMode определяет, как обрабатываются взаимодействия для VisualInteractionSource на оси Y. Существует 3 типа объектов InteractionSourceModeна выбор: "Отключено", "EnabledWithInertia" и "EnabledWithoutInertia". Это свойство должно быть включено, чтобы разрешить VisualInteractionSource отправлять данные оси Y в InteractionTracker.

Properties

Коллекция свойств, связанных с CompositionObject.

(Унаследовано от CompositionObject)
Scale

Общая разница в процентах в масштабе с начала взаимодействия. Мультипликативные. По умолчанию равен 1. Доступно только для чтения с помощью выражения или анимации.

ScaleChainingMode

Свойство ScaleChainingMode определяет поведение цепочки для Объекта InteractionSource в направлении Scale. Существует три типа объектов InteractionChainingMode : Auto, Always, Never. Если включена цепочки масштабирования, входные данные будут поступать в VisualInteractionSource ближайшего предка всякий раз, когда взаимодействие (например, сдвиг) займет позицию InteractionTracker после минимальной или максимальной позиции Scale.

ScaleSourceMode

Определяет способ обработки взаимодействий для VisualInteractionSource на оси масштабирования. Существует 3 типа InteractionSourceModeна выбор: Взаимодействия Disabled , EnabledWithInertia и EnabledWithoutInertia . Это свойство должно быть включено, чтобы разрешить VisualInteractionSource отправлять данные масштабирования в InteractionTracker.

ScaleVelocity

Мгновенная скорость изменения масштаба во взаимодействии в процентах в секунду. Добавка. Значение по умолчанию — 0. Чтение только с помощью выражения или анимации.

Source

Визуальный элемент, используемый для проверки попадания и определяющий пространство координации для распознавания жестов.

Методы

Close()

Закрывает объект CompositionObject и освобождает системные ресурсы.

(Унаследовано от CompositionObject)
ConfigureCenterPointXModifiers(IIterable<CompositionConditionalValue>)

Принимает упорядоченный список CompositionConditionalValue. В кадре первый объект CompositionConditionalValue имеет значение . Условие" вычисляется до true, заменяет значение масштаба CenterPointX, которое visualInteractionSource предоставляет своим значением ". Значение". Если значение не равно true, элемент CenterPointX не заменяется этим кадром.

ConfigureCenterPointYModifiers(IIterable<CompositionConditionalValue>)

Принимает упорядоченный список CompositionConditionalValue. В кадре первый объект CompositionConditionalValue имеет значение . Условие" вычисляется до true, заменяет значение масштаба CenterPointY, которое предоставляет VisualInteractionSource своим значением ". Значение". Если значение не равно true, элемент CenterPointY не заменяется этим кадром.

ConfigureDeltaPositionXModifiers(IIterable<CompositionConditionalValue>)

Принимает упорядоченный список CompositionConditionalValue. В кадре первый объект CompositionConditionalValue имеет значение . Условие" вычисляется до true, заменяет значение DeltaPositionX, которое предоставляет VisualInteractionSource своим значением . Значение". Если значение не равно true, DeltaPositionX не заменяется этим кадром.

ConfigureDeltaPositionYModifiers(IIterable<CompositionConditionalValue>)

Принимает упорядоченный список CompositionConditionalValue. В кадре первый объект CompositionConditionalValue имеет значение . Условие" вычисляется до true, заменяет значение DeltaPositionY, которое visualInteractionSource предоставляет своим значением ". Значение". Если значение не равно true, deltaPositionY не заменяется этим кадром.

ConfigureDeltaScaleModifiers(IIterable<CompositionConditionalValue>)

Принимает упорядоченный список CompositionConditionalValue. В кадре первый объект CompositionConditionalValue имеет значение . Условие " значение true заменяет значение DeltaScale, которое visualInteractionSource предоставляет своим ". Значение". Если ни один из них не имеет значения true, deltaScale не заменяется этим кадром.

ConnectAnimation(String, CompositionAnimation)

Соединения и анимация.

(Унаследовано от CompositionObject)
Create(Visual)

Создает экземпляр VisualInteractionSource.

CreateFromIVisualElement(IVisualElement)

Создает экземпляр VisualInteractionSource из элемента, реализующего IVisualElement.

DisconnectAnimation(String)

Отключает анимацию.

(Унаследовано от CompositionObject)
Dispose()

Выполняет определяемые приложением задачи, связанные с удалением, высвобождением или сбросом неуправляемых ресурсов.

(Унаследовано от CompositionObject)
PopulatePropertyInfo(String, AnimationPropertyInfo)

Определяет свойство, которое можно анимировать.

(Унаследовано от CompositionObject)
StartAnimation(String, CompositionAnimation, AnimationController)

Подключает анимацию к указанному свойству объекта и запускает анимацию.

(Унаследовано от CompositionObject)
StartAnimation(String, CompositionAnimation)

Подключает анимацию к указанному свойству объекта и запускает анимацию.

(Унаследовано от CompositionObject)
StartAnimationGroup(ICompositionAnimationBase)

Запускает группу анимации.

Метод StartAnimationGroup в CompositionObject позволяет запустить CompositionAnimationGroup. Все анимации в группе будут запущены одновременно для объекта .

(Унаследовано от CompositionObject)
StopAnimation(String)

Отключает анимацию от указанного свойства и останавливает анимацию.

(Унаследовано от CompositionObject)
StopAnimationGroup(ICompositionAnimationBase)

Останавливает группу анимации.

(Унаследовано от CompositionObject)
TryGetAnimationController(String)

Возвращает AnimationController для анимации, выполняемой с указанным свойством.

(Унаследовано от CompositionObject)
TryRedirectForManipulation(PointerPoint)

Указывает, что настроенные манипуляции для заданного потока указателя должны отправляться в InteractionTracker, а не в поток пользовательского интерфейса приложения, начиная с заданного PointerPoint.

TryRedirectForManipulation позволяет VisualInteractionSource перенаправлять поток указателя в InteractionTracker , если жест соответствует конфигурации в VisualInteractionSource. Этот метод следует вызывать только с вводом указателя устройства DeviceType Touch.

Применяется к

См. также раздел