SplineDoubleKeyFrame Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
public ref class SplineDoubleKeyFrame sealed : DoubleKeyFrame
/// [Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class SplineDoubleKeyFrame final : DoubleKeyFrame
[Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class SplineDoubleKeyFrame : DoubleKeyFrame
Public NotInheritable Class SplineDoubleKeyFrame
Inherits DoubleKeyFrame
<SplineDoubleKeyFrame .../>
- Warisan
- Atribut
Contoh
Contoh XAML ini memindahkan persegi panjang di seluruh layar. Contohnya menggunakan kelas DoubleAnimationUsingKeyFrames untuk menganimasikan properti X dari TranslateTransform yang diterapkan ke Persegi Panjang. Animasi ini menggunakan tiga bingkai kunci dengan cara berikut:
- Selama tiga detik pertama, ia menggunakan instans kelas LinearDoubleKeyFrame untuk memindahkan persegi panjang di sepanjang jalur pada tingkat stabil dari posisi awal ke posisi 500. Bingkai kunci linier seperti LinearDoubleKeyFrame membuat transisi linier yang halus antar nilai.
- Pada akhir detik keempat, ia menggunakan instans kelas DiscreteDoubleKeyFrame untuk tiba-tiba memindahkan persegi panjang ke posisi berikutnya. Bingkai kunci diskrit seperti DiscreteDoubleKeyFrame membuat lompatan mendadak di antara nilai. Dalam contoh ini, persegi panjang berada di posisi awal dan kemudian tiba-tiba muncul pada posisi 500.
- Dalam dua detik terakhir, ia menggunakan instans kelas SplineDoubleKeyFrame untuk memindahkan persegi kembali ke posisi awalnya. Bingkai kunci spline seperti SplineDoubleKeyFrame membuat transisi variabel antar nilai sesuai dengan nilai properti KeySpline . Dalam contoh ini, persegi panjang dimulai dengan bergerak perlahan dan kemudian mempercepat secara eksponensial menuju akhir segmen waktu.
<StackPanel>
<StackPanel.Resources>
<Storyboard x:Name="myStoryboard">
<!-- Animate the TranslateTransform's X property
from 0 to 350, then 50,
then 200 over 10 seconds. -->
<DoubleAnimationUsingKeyFrames
Storyboard.TargetName="MyAnimatedTranslateTransform"
Storyboard.TargetProperty="X"
Duration="0:0:10" EnableDependentAnimation="True">
<!-- Using a LinearDoubleKeyFrame, the rectangle moves
steadily from its starting position to 500 over
the first 3 seconds. -->
<LinearDoubleKeyFrame Value="500" KeyTime="0:0:3" />
<!-- Using a DiscreteDoubleKeyFrame, the rectangle suddenly
appears at 400 after the fourth second of the animation. -->
<DiscreteDoubleKeyFrame Value="400" KeyTime="0:0:4" />
<!-- Using a SplineDoubleKeyFrame, the rectangle moves
back to its starting point. The
animation starts out slowly at first and then speeds up.
This KeyFrame ends after the 6th
second. -->
<SplineDoubleKeyFrame KeySpline="0.6,0.0 0.9,0.00" Value="0" KeyTime="0:0:6" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</StackPanel.Resources>
<Rectangle Fill="Blue" Width="50" Height="50" Loaded="Start_Animation">
<Rectangle.RenderTransform>
<TranslateTransform x:Name="MyAnimatedTranslateTransform"
X="0" Y="0" />
</Rectangle.RenderTransform>
</Rectangle>
</StackPanel>
// Start the animation when the object loads
private void Start_Animation(object sender, RoutedEventArgs e)
{
myStoryboard.Begin();
}
Keterangan
Animasi bingkai kunci mengizinkan lebih dari satu nilai target yang tercapai pada titik di sepanjang garis waktu animasi. Dengan kata lain, setiap bingkai kunci dapat menentukan nilai perantara yang berbeda, dan bingkai kunci terakhir yang dicapai adalah nilai animasi akhir. Dengan menentukan beberapa nilai untuk dianimasikan, Anda dapat membuat animasi yang lebih kompleks. Anda dapat mencampur keyframe diskrit, linier, dan spline dalam koleksi keyframe yang sama.
Untuk informasi selengkapnya tentang cara menggunakan animasi bingkai kunci, lihat Animasi bingkai kunci dan animasi fungsi yang lebih mudah.
Konstruktor
SplineDoubleKeyFrame() |
Menginisialisasi instans baru kelas SplineDoubleKeyFrame . |
Properti
Dispatcher |
Selalu kembali |
DispatcherQueue |
|
KeySpline |
Mendapatkan atau mengatur dua titik kontrol yang menentukan kemajuan animasi untuk bingkai kunci ini. |
KeySplineProperty |
Mengidentifikasi properti dependensi KeySpline . |
KeyTime |
Mendapatkan atau mengatur waktu di mana Nilai target bingkai kunci harus tercapai. (Diperoleh dari DoubleKeyFrame) |
Value |
Mendapatkan atau mengatur nilai target bingkai kunci. (Diperoleh dari DoubleKeyFrame) |
Metode
ClearValue(DependencyProperty) |
Menghapus nilai lokal properti dependensi. (Diperoleh dari DependencyObject) |
GetAnimationBaseValue(DependencyProperty) |
Mengembalikan nilai dasar apa pun yang ditetapkan untuk properti dependensi, yang akan berlaku dalam kasus di mana animasi tidak aktif. (Diperoleh dari DependencyObject) |
GetValue(DependencyProperty) |
Mengembalikan nilai efektif properti dependensi saat ini dari DependencyObject. (Diperoleh dari DependencyObject) |
ReadLocalValue(DependencyProperty) |
Mengembalikan nilai lokal properti dependensi, jika nilai lokal ditetapkan. (Diperoleh dari DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Mendaftarkan fungsi pemberitahuan untuk mendengarkan perubahan pada DependencyProperty tertentu pada instans DependencyObject ini. (Diperoleh dari DependencyObject) |
SetValue(DependencyProperty, Object) |
Mengatur nilai lokal properti dependensi pada DependencyObject. (Diperoleh dari DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Membatalkan pemberitahuan perubahan yang sebelumnya terdaftar dengan memanggil RegisterPropertyChangedCallback. (Diperoleh dari DependencyObject) |