Bagikan melalui


Storyboard.SetTargetProperty(Timeline, String) Metode

Definisi

Mengatur nilai properti Terlampir Storyboard.TargetProperty XAML untuk elemen target.

public:
 static void SetTargetProperty(Timeline ^ element, Platform::String ^ path);
 static void SetTargetProperty(Timeline const& element, winrt::hstring const& path);
public static void SetTargetProperty(Timeline element, string path);
function setTargetProperty(element, path)
Public Shared Sub SetTargetProperty (element As Timeline, path As String)

Parameter

element
Timeline

Elemen target untuk mengatur nilai.

path
String

Platform::String

winrt::hstring

Nilai Storyboard.TargetProperty dari elemen target yang akan ditetapkan. Ini menentukan jalur kualifikasi yang menargetkan properti dependensi tempat animasi berlaku. Lihat Keterangan.

Keterangan

Menggunakan SetTargetProperty dalam kode dibandingkan dengan menargetkan animasi dalam definisi XAML awal jarang terjadi. Sangat sulit untuk mendapatkan semua penargetan dan waktu yang benar dalam animasi, terutama jika Anda mencoba menggabungkan nilai yang hanya tersedia pada durasi. Kami menyarankan agar Anda membuat animasi di XAML, yang berarti Anda akan menggunakan properti Terlampir Storyboard.TargetProperty , bukan metode runtime SetTargetProperty (yang mendukung XAML di belakang layar). Membangun animasi dalam kode adalah skenario tingkat lanjut. Berikut adalah contoh kode yang sangat mendasar tentang apa yang terlibat:

Rectangle rect = new Rectangle();
rect.RenderTransform = new ScaleTransform();
//TODO - connect this Rectangle to the visual tree
Storyboard storyboard = new Storyboard();
DoubleAnimation scalex = new DoubleAnimation()
{
    From = 0,
    To = 8,
    AutoReverse = true,
    Duration = TimeSpan.FromSeconds(2)
};
Storyboard.SetTargetProperty(scalex, "(Rectangle.RenderTransform).(ScaleTransform.ScaleX)");
Storyboard.SetTarget(scalex, rect);
//TODO - Begin the animation

Jalur properti untuk penargetan properti animasi

Properti terlampir Storyboard.TargetProperty biasanya diatur pada animasi turunan Garis Waktu individual yang membentuk koleksi Storyboard.Children dari definisi animasi di XAML.

Properti Storyboard.TargetName dapat memproses sintaks string yang memungkinkan penargetan subproperti nilai properti. Sintaks menggunakan metafora "dot-down" untuk menargetkan rantai hubungan properti objek hingga subproperti tertentu diidentifikasi. Ini memungkinkan animasi untuk diterapkan ke jenis nilai di mana ada struktur animasi pendukung (Ganda, Warna, Titik, dan Objek untuk DiscreteObjectKeyFrameAnimation). Misalnya, Anda mungkin ingin menganimasikan nilai Latar BelakangKontrol, yang mengambil jenis objek Brush. Tidak ada jenis animasi "BrushAnimation", sehingga Anda tidak dapat langsung menargetkan animasi untuk Latar Belakang . Tetapi apa yang dapat Anda lakukan sebagai gantinya adalah mereferensikan subproperti SolidColorBrush yang bernama Warna, yang mengambil jenis Warna dan dengan demikian dapat ditargetkan oleh ColorAnimation. Sintaks string untuk ini adalah:

(Control.Background).(SolidColorBrush.Color)

Tanda kurung di sekitar "(Control.Background)" menginformasikan pemrosesan bahwa "titik" perantara tidak boleh "putus-putus" dan bukan merupakan bagian dari nama kualifikasi yang menemukan properti Latar Belakang yang memenuhi syarat jenis pemilik untuk penargetan. "Titik" berikut diperlakukan sebagai instruksi "titik-bawah", yang meminta subproperti jenis Brush . Fragmen "(SolidColorBrush.Color)" terakhir lagi mencakup tanda kurung sehingga "titik" interior kembali digunakan sebagai kualifikasi ownertype.member , bukan "titik-bawah".

Perhatikan bahwa untuk nilai subproperti, mungkin ada beberapa inferensi nilai. Misalnya, string berikut bekerja dengan inferensi meskipun "Color" sebenarnya adalah nilai subkelas Brush tertentu SolidColorBrush:

(Control.Background).Color

Ada lebih banyak spesifikasi jalur properti daripada ini. Pernyataan ini hanya dimaksudkan untuk membuat Anda mulai dengan skenario penargetan dasar. Untuk informasi selengkapnya, lihat Sintaks jalur properti dan animasi Storyboarded.

Catatan migrasi

Saat Anda menentukan nilai jalur untuk parameter jalur , Anda menentukan string, dan jika Anda mengambil nilai lagi menggunakan GetTargetProperty, Anda juga mendapatkan nilai sebagai string. Hal ini berbeda dengan beberapa implementasi lain dari konsep penargetan properti animasi seperti Microsoft Silverlight dan Windows Presentation Foundation (WPF). Teknologi XAML ini menggunakan jenis objek representatif (objek PropertyPath diskrit) untuk menyimpan informasi jalur properti untuk penargetan animasi, dan sintaks untuk metode SetTargetProperty menggunakan jenis PropertyPath . Windows Runtime juga memiliki kelas PropertyPath ; namun kelas tersebut hanya digunakan untuk pengikatan data, yang merupakan skenario lain untuk definisi jalur properti. Windows Runtime tidak mendukung modifikasi jalur properti di Storyboard setelah ditentukan menggunakan string, sehingga implementasi Storyboard.TargetProperty mengambil string. Perbedaan ini bahkan tidak masalah untuk sintaks XAML dan dukungan properti terlampir. Hanya penting untuk membuat papan cerita dinamis dalam kode, atau secara terprogram memodifikasi nilai papan cerita setelah awalnya didefinisikan dalam XAML. Jika Anda memiliki kebutuhan untuk menargetkan ulang animasi ke properti yang berbeda pada durasi, buat Papan Cerita yang sama sekali baru dengan string jalur properti baru, jalankan animasi dengan Papan Cerita baru, dan berhenti menggunakan yang sebelumnya.

Berlaku untuk

Lihat juga