Bagikan melalui


VisualInteractionSource Kelas

Definisi

Objek untuk mengonfigurasi input ke InteractionTracker relatif terhadap visual.

VisualInteractionSource dirancang untuk digunakan hanya dengan InteractionTracker dan menentukan input mana yang akan dikirim ke InteractionTracker untuk mendorong status dan propertinya. Kelas ini berisi visual yang akan digunakan untuk pengujian hit, serta berbagai properti konfigurasi yang gerakan dan jenis inputnya akan dikirim ke 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
Warisan
Object Platform::Object IInspectable CompositionObject VisualInteractionSource
Atribut
Penerapan

Persyaratan Windows

Rangkaian perangkat
Windows 10 Anniversary Edition (diperkenalkan dalam 10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v3.0)

Contoh

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

Keterangan

VisualInteractionSource digunakan untuk menentukan properti penting tentang jenis interaksi yang harus mendorong status dan properti InteractionTracker. Properti sumber digunakan baik untuk pengujian hit, maupun ruang koordinat untuk deteksi gerakan. Akibatnya, penting untuk menggunakan Visual yang tidak akan bergerak selama manipulasi. Beberapa VisualInteractionSources dapat dikaitkan dengan InteractionTracker yang sama jika ada beberapa wilayah uji hit, tetapi kasus yang paling umum hanya memerlukan satu VisualInteractionSource untuk InteractionTracker tertentu.

VisualInteractionSource adalah kelas untuk mengonfigurasi jenis gerakan mana yang harus dipertimbangkan untuk mendorong InteractionTracker. Posisi X dan Y masing-masing dikaitkan dengan panning horizontal dan vertikal. Skala terdeteksi dengan gerakan mencubit, sering dikaitkan dengan pembesaran tampilan. Ketiga mode sumber ini semuanya dapat dikonfigurasi untuk sentuhan dan input Touchpad Presisi. Masing-masing mode sumber ini dapat diaktifkan dengan atau tanpa inertia:

  • Mengaktifkan inertia menunjukkan bahwa posisi atau skala secara alami akan menginterpolasi dari kecepatan rilis ke tidak ada kecepatan selama keadaan inertia.

  • Menonaktifkan inertia menunjukkan bahwa posisi atau kecepatan skala akan segera menuju ke 0 setelah selesainya interaksi. Ketika input yang mendorong posisi atau skala dirutekan ke InteractionTracker, properti InteractionTracker dengan nama yang sama akan diperbarui dengan tepat.

Konfigurasi rel menunjukkan bagaimana gerakan akan terdeteksi. Rel, secara default, menyala dan menunjukkan bahwa panci horizontal atau vertikal akan mengunci sumbu tertentu ketika dimulai terutama pada sumbu tersebut. Ini dijelaskan secara lebih rinci pada halaman properti rel.

Konfigurasi penautan menunjukkan apakah input yang diproses oleh satu VisualInteractionSource dapat mengalir ke entitas lain ketika InteractionTracker mencapai min atau maks ke arah tersebut. Konfigurasi ini akan memungkinkan input untuk menautkan ke InteractionTracker lain melalui VisualInteractionSource lain, atau ke ScrollViewer jika visual sumber VisualInteractionSource adalah anak dari ScrollViewer.

Riwayat versi

Versi Windows Versi SDK Nilai ditambahkan
1703 15063 MengonfigurasiCenterPointXModifiers
1703 15063 MengonfigurasiCenterPointyModifiers
1703 15063 ConfigureDeltaPositionXModifiers
1703 15063 ConfigureDeltaPositionyModifiers
1703 15063 ConfigureDeltaScaleModifiers
1703 15063 DeltaPosition
1703 15063 DeltaScale
1703 15063 Position
1703 15063 PositionVelocity
1703 15063 Skala
1703 15063 ScaleVelocity
1809 17763 PointerWheelConfig
1903 18362 CreateFromIVisualElement

Properti

Comment

String yang akan dikaitkan dengan CompositionObject.

(Diperoleh dari CompositionObject)
Compositor

Compositor digunakan untuk membuat CompositionObject ini.

(Diperoleh dari CompositionObject)
DeltaPosition

Jumlah perubahan posisi yang akan diterapkan selama bingkai mendatang. Default ke 0. Hanya dapat dibaca melalui ekspresi/animasi.

DeltaScale

Jumlah perubahan skala yang akan diterapkan selama bingkai mendatang. Multiplikatif. Default ke 1. Hanya dapat dibaca melalui ekspresi/animasi.

Dispatcher

Dispatcher untuk CompositionObject.

(Diperoleh dari CompositionObject)
DispatcherQueue

Mendapatkan DispatcherQueue untuk CompostionObject.

(Diperoleh dari CompositionObject)
ImplicitAnimations

Kumpulan animasi implisit yang melekat pada objek ini.

(Diperoleh dari CompositionObject)
IsPositionXRailsEnabled

Menunjukkan apakah panning pada sumbu x direl.

Properti IsPositionXRailsEnabled menentukan konfigurasi rel ketika panning sumbu X dikirim ke InteractionTracker yang sesuai. Saat diaktifkan, jika bagian awal pancang dalam rentang tertentu relatif terhadap sumbu X, komponen Y pan diabaikan dan dianggap sebagai panja horizontal yang sempurna. Properti ini sering diaktifkan dalam situasi di mana pengalaman pengguliran X dan Y diaktifkan, tetapi juga membutuhkan panning horizontal yang andal dan sempurna.

IsPositionYRailsEnabled

Menunjukkan apakah panning pada sumbu y direl.

Properti IsPositionYRailsEnabled menentukan konfigurasi rel ketika panning sumbu Y dikirim ke InteractionTracker yang sesuai. Saat diaktifkan, jika bagian awal pancang dalam rentang tertentu relatif terhadap sumbu Y, komponen X pan diabaikan dan dianggap sebagai pan vertikal yang sempurna. Properti ini sering diaktifkan dalam situasi di mana pengalaman pengguliran X dan Y diaktifkan, tetapi juga membutuhkan panning vertikal yang andal dan sempurna.

ManipulationRedirectionMode

Menunjukkan input apa yang harus dialihkan ke InteractionTracker.

PointerWheelConfig

Mendapatkan konfigurasi untuk input roda penunjuk.

Position

Jumlah total perubahan posisi sejak awal interaksi. Default ke 0. Hanya dapat dibaca melalui ekspresi/animasi.

PositionVelocity

Tingkat perubahan posisi seketika dalam interaksi, dalam piksel per detik. Default ke 0. Hanya dapat dibaca melalui ekspresi/animasi.

PositionXChainingMode

Properti PositionXChainingMode menentukan perilaku penautan untuk InteractionSource ke arah X. Ada tiga jenis InteractionChainingMode s: Auto , Always , Never . Saat penautan ke arah X diaktifkan, input akan mengalir ke VisualInteractionSource leluhur terdekat setiap kali interaksi (seperti panning) akan mengambil posisi InteractionTracker melewati posisi X minimum atau maksimumnya.

PositionXSourceMode

Mode sumber untuk sumbu X.

Properti PositionXSourceMode menentukan bagaimana interaksi diproses untuk VisualInteractionSource pada sumbu X. Ada 3 jenis InteractionSourceModeyang dapat dipilih: Interaksi Dinonaktifkan, EnabledWithInertia, dan EnabledWithoutInertia. Properti ini harus diaktifkan untuk memungkinkan VisualInteractionSource mengirim data sumbu X ke InteractionTracker.

PositionYChainingMode

Properti PositionYChainingMode menentukan perilaku penautan untuk InteractionSource ke arah Y. Ada tiga jenis InteractionChainingMode s: Auto , Always , Never . Saat penautan ke arah Y diaktifkan, input akan mengalir ke VisualInteractionSource leluhur terdekat setiap kali interaksi (seperti panning) akan mengambil posisi InteractionTracker melewati posisi minimum atau maksimum Y.

PositionYSourceMode

Mode sumber untuk sumbu Y.

Properti PositionYSourceMode menentukan bagaimana interaksi diproses untuk VisualInteractionSource pada sumbu Y. Ada 3 jenis InteractionSourceModeyang dapat dipilih: Interaksi Dinonaktifkan, EnabledWithInertia, dan EnabledWithoutInertia. Properti ini harus diaktifkan untuk memungkinkan VisualInteractionSource mengirim data sumbu Y ke InteractionTracker.

Properties

Kumpulan properti yang terkait dengan CompositionObject.

(Diperoleh dari CompositionObject)
Scale

Total persentase-perbedaan dalam skala sejak awal interaksi. Multiplikatif. Default ke 1. Hanya dapat dibaca melalui ekspresi/animasi.

ScaleChainingMode

Properti ScaleChainingMode menentukan perilaku penautan untuk InteractionSource ke arah Skala. Ada tiga jenis InteractionChainingMode : Auto, Always, Never. Ketika penautan Skala diaktifkan, input akan mengalir ke VisualInteractionSource leluhur terdekat setiap kali interaksi (seperti panning) akan mengambil posisi InteractionTracker melewati posisi Skala minimum atau maksimumnya.

ScaleSourceMode

Menentukan bagaimana interaksi diproses untuk VisualInteractionSource pada sumbu skala. Ada 3 jenis InteractionSourceModeyang dapat dipilih: Interaksi dinonaktifkan , EnabledWithInertia dan EnabledWithoutInertia . Properti ini harus diaktifkan untuk memungkinkan VisualInteractionSource mengirim data skala ke InteractionTracker.

ScaleVelocity

Tingkat perubahan skala seketika dalam interaksi, dalam persen per detik. Aditif. Default ke 0. Hanya dapat dibaca melalui ekspresi/animasi.

Source

Visual yang digunakan untuk pengujian hit dan mendefinisikan ruang koordinat untuk pengenalan gerakan.

Metode

Close()

Menutup CompositionObject dan merilis sumber daya sistem.

(Diperoleh dari CompositionObject)
ConfigureCenterPointXModifiers(IIterable<CompositionConditionalValue>)

Mengambil daftar yang diurutkan dari CompositionConditionalValue. Dalam bingkai, KomposisiConditionalValue pertama yang memiliki ". Kondisi" mengevaluasi ke true menggantikan nilai Zoom CenterPointX yang disediakan VisualInteractionSource dengan ". Nilai". Jika tidak ada yang mengevaluasi ke true, CenterPointX tidak diganti bingkai tersebut.

ConfigureCenterPointYModifiers(IIterable<CompositionConditionalValue>)

Mengambil daftar yang diurutkan dari CompositionConditionalValue. Dalam bingkai, KomposisiConditionalValue pertama yang memiliki ". Kondisi" mengevaluasi ke true menggantikan nilai Zoom CenterPointY yang disediakan VisualInteractionSource dengan ". Nilai". Jika tidak ada yang mengevaluasi ke true, CenterPointY tidak diganti bingkai tersebut.

ConfigureDeltaPositionXModifiers(IIterable<CompositionConditionalValue>)

Mengambil daftar yang diurutkan dari CompositionConditionalValue. Dalam bingkai, KomposisiConditionalValue pertama yang memiliki ". Kondisi" mengevaluasi ke true menggantikan nilai DeltaPositionX yang disediakan VisualInteractionSource dengan ". Nilai". Jika tidak ada yang mengevaluasi ke true, DeltaPositionX tidak digantikan bingkai tersebut.

ConfigureDeltaPositionYModifiers(IIterable<CompositionConditionalValue>)

Mengambil daftar yang diurutkan dari CompositionConditionalValue. Dalam bingkai, KomposisiConditionalValue pertama yang memiliki ". Kondisi" mengevaluasi ke true menggantikan nilai DeltaPositionY yang disediakan VisualInteractionSource dengan ". Nilai". Jika tidak ada yang dievaluasi ke true, DeltaPositionY tidak digantikan bingkai tersebut.

ConfigureDeltaScaleModifiers(IIterable<CompositionConditionalValue>)

Mengambil daftar yang diurutkan dari CompositionConditionalValue. Dalam bingkai, KomposisiConditionalValue pertama yang memiliki ". Kondisi" mengevaluasi ke true menggantikan nilai DeltaScale yang disediakan VisualInteractionSource dengan ". Nilai". Jika tidak ada yang mengevaluasi ke true, DeltaScale tidak digantikan bingkai tersebut.

ConnectAnimation(String, CompositionAnimation)

Menyambungkan dan animasi.

(Diperoleh dari CompositionObject)
Create(Visual)

Membuat instans VisualInteractionSource.

CreateFromIVisualElement(IVisualElement)

Membuat instans VisualInteractionSource dari elemen yang mengimplementasikan IVisualElement.

DisconnectAnimation(String)

Memutuskan sambungan animasi.

(Diperoleh dari CompositionObject)
Dispose()

Melakukan tugas yang ditentukan aplikasi yang terkait dengan membebaskan, melepaskan, atau mereset sumber daya yang tidak terkelola.

(Diperoleh dari CompositionObject)
PopulatePropertyInfo(String, AnimationPropertyInfo)

Menentukan properti yang dapat dianimasikan.

(Diperoleh dari CompositionObject)
StartAnimation(String, CompositionAnimation, AnimationController)

Menyambungkan animasi dengan properti objek yang ditentukan dan memulai animasi.

(Diperoleh dari CompositionObject)
StartAnimation(String, CompositionAnimation)

Menyambungkan animasi dengan properti objek yang ditentukan dan memulai animasi.

(Diperoleh dari CompositionObject)
StartAnimationGroup(ICompositionAnimationBase)

Memulai grup animasi.

Metode StartAnimationGroup pada CompositionObject memungkinkan Anda memulai KomposisiAnimationGroup. Semua animasi dalam grup akan dimulai pada saat yang sama pada objek.

(Diperoleh dari CompositionObject)
StopAnimation(String)

Memutuskan sambungan animasi dari properti yang ditentukan dan menghentikan animasi.

(Diperoleh dari CompositionObject)
StopAnimationGroup(ICompositionAnimationBase)

Menghentikan grup animasi.

(Diperoleh dari CompositionObject)
TryGetAnimationController(String)

Mengembalikan AnimationController untuk animasi yang berjalan pada properti yang ditentukan.

(Diperoleh dari CompositionObject)
TryRedirectForManipulation(PointerPoint)

Menunjukkan bahwa manipulasi yang dikonfigurasi untuk aliran pointer yang diberikan harus dikirim ke InteractionTracker, bukan utas UI aplikasi, dimulai dari PointerPoint yang diberikan.

TryRedirectForManipulation memungkinkan VisualInteractionSource untuk mengalihkan aliran Pointer ke InteractionTracker jika gerakan cocok dengan konfigurasi pada VisualInteractionSource. Metode ini hanya boleh dipanggil dengan input Pointer dari DeviceType Touch.

Berlaku untuk

Lihat juga