共用方式為


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 相關聯,但最常見的案例只需要一個 VisualInteractionSource 才能用於指定的 InteractionTracker。

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 Position
1703 15063 PositionVelocity
1703 15063 調整
1703 15063 ScaleVelocity
1809 17763 PointerWheelConfig
1903 18362 CreateFromIVisualElement

屬性

Comment

要與 CompositionObject 建立關聯的字串。

(繼承來源 CompositionObject)
Compositor

用來建立這個CompositionObjectCompositor

(繼承來源 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 屬性會以 X 方向定義 InteractionSource 的鏈結行為。 InteractionChainingMode有三種類型:AutoAlwaysNever 。 啟用 X 方向鏈結時,只要互動 (例如移動流覽) ,輸入就會流向最接近上階的 VisualInteractionSource ,否則 會讓 InteractionTracker 的位置超過其最小或最大 X 位置。

PositionXSourceMode

X 軸的來源模式。

PositionXSourceMode 屬性會定義如何在 X 軸上處理 VisualInteractionSource 的互動。 有 3 種類型的 InteractionSourceMode可供選擇:互動為 Disabled、EnabledWithInertia 和 EnabledWithoutInertia。 必須啟用此屬性, 才能讓 VisualInteractionSource 將 X 軸資料傳送至 InteractionTracker

PositionYChainingMode

PositionYChainingMode 屬性會以 Y 方向定義 InteractionSource 的鏈結行為。 InteractionChainingMode有三種類型:AutoAlwaysNever 。 啟用 Y 方向鏈結時,每當互動 (例如移動流覽) ,輸入就會流向最接近上階的 VisualInteractionSource ,否則 會讓 InteractionTracker 的位置超過其最小或最大 Y 位置。

PositionYSourceMode

Y 軸的來源模式。

PositionYSourceMode 屬性會定義 Y 軸上 VisualInteractionSource 的互動處理方式。 有 3 種類型的 InteractionSourceMode可供選擇:互動為 Disabled、EnabledWithInertia 和 EnabledWithoutInertia。 必須啟用此屬性, 才能讓 VisualInteractionSource 將 Y 軸資料傳送至 InteractionTracker

Properties

CompositionObject相關聯的屬性集合。

(繼承來源 CompositionObject)
Scale

自互動開始以來,縮放比例的總百分比差異。 乘法。 預設值為 1。 只能透過運算式/動畫讀取。

ScaleChainingMode

ScaleChainingMode 屬性會以 Scale 方向定義 InteractionSource 的鏈結行為。 InteractionChainingMode有三種類型:Auto、Always、Never。 啟用縮放鏈結時,每當互動 (例如移動流覽) ,輸入就會流向最接近上階的 VisualInteractionSource ,否則 會採用 InteractionTracker 的位置超過其最小值或最大 Scale 位置。

ScaleSourceMode

定義縮放軸上 VisualInteractionSource 的互動處理方式。 有 3 種類型的 InteractionSourceMode可供選擇:互動已 停用EnabledWithInertiaEnabledWithoutInertia 。 必須啟用此屬性, 才能讓 VisualInteractionSource 將縮放資料傳送至 InteractionTracker

ScaleVelocity

互動中縮放比例的瞬間速率,以每秒百分比為單位。 添加劑。 預設為 0。 只能透過運算式/動畫讀取。

Source

用於點擊測試的視覺效果,並定義手勢辨識的座標空間。

方法

Close()

關閉 CompositionObject 並釋放系統資源。

(繼承來源 CompositionObject)
ConfigureCenterPointXModifiers(IIterable<CompositionConditionalValue>)

取得 CompositionConditionalValue 的已排序清單。 在框架中,第一個 CompositionConditionalValue 的 「。[條件] 評估為 true,會取代 VisualInteractionSource 為其 「」 提供的 zoom CenterPointX 值。值」。 如果沒有評估為 true,則 CenterPointX 不會取代該框架。

ConfigureCenterPointYModifiers(IIterable<CompositionConditionalValue>)

取得 CompositionConditionalValue 的已排序清單。 在框架中,第一個 CompositionConditionalValue 的 「。Condition「 評估為 true,會取代 VisualInteractionSource 提供的縮放中心PointY 值及其 」。值」。 如果沒有評估為 true,則 CenterPointY 不會取代該框架。

ConfigureDeltaPositionXModifiers(IIterable<CompositionConditionalValue>)

取得 CompositionConditionalValue 的已排序清單。 在框架中,第一個 CompositionConditionalValue 的 「。條件評估為 true,會取代 VisualInteractionSource 提供其 「」 的 DeltaPositionX 值。值」。 如果沒有評估為 true,DeltaPositionX 就不會取代該框架。

ConfigureDeltaPositionYModifiers(IIterable<CompositionConditionalValue>)

取得 CompositionConditionalValue 的已排序清單。 在框架中,第一個 CompositionConditionalValue 的 「。條件評估為 true,會取代 VisualInteractionSource 提供其 「」 的 DeltaPositionY 值。值」。 如果沒有評估為 true,DeltaPositionY 就不會取代該框架。

ConfigureDeltaScaleModifiers(IIterable<CompositionConditionalValue>)

取得 CompositionConditionalValue 的已排序清單。 在框架中,第一個 CompositionConditionalValue 的 「。條件評估為 true,會取代 VisualInteractionSource 提供其 「」 的 DeltaScale 值。值」。 如果沒有評估為 true,DeltaScale 就不會取代該框架。

ConnectAnimation(String, CompositionAnimation)

連接和動畫。

(繼承來源 CompositionObject)
Create(Visual)

建立 VisualInteractionSource的實例。

CreateFromIVisualElement(IVisualElement)

從實作IVisualElement的專案建立VisualInteractionSource的實例。

DisconnectAnimation(String)

中斷動畫的連線。

(繼承來源 CompositionObject)
Dispose()

執行與釋放 (Free)、釋放 (Release) 或重設 Unmanaged 資源相關聯之應用程式定義的工作。

(繼承來源 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(PointerPoint)

指出指定指標資料流程的設定操作應該傳送至 InteractionTracker,而不是應用程式 UI 執行緒,從指定的 PointerPoint 開始。

如果手勢符合VisualInteractionSource上的設定,TryRedirectForManipulation 可讓VisualInteractionSource將指標資料流程重新導向至InteractionTracker。 這個方法應該只使用 DeviceType Touch 的 Pointer 輸入來呼叫。

適用於

另請參閱