DoubleAnimation Kelas

Definisi

Menganimasikan nilai properti Ganda antara dua nilai target menggunakan interpolasi linier selama Durasi tertentu.

public ref class DoubleAnimation sealed : Timeline
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class DoubleAnimation final : Timeline
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class DoubleAnimation final : Timeline
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class DoubleAnimation : Timeline
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class DoubleAnimation : Timeline
Public NotInheritable Class DoubleAnimation
Inherits Timeline
<DoubleAnimation />
Warisan
Object Platform::Object IInspectable DependencyObject Timeline DoubleAnimation
Atribut

Persyaratan Windows

Rangkaian perangkat
Windows 10 (diperkenalkan dalam 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v1.0)

Contoh

Contoh berikut menunjukkan cara menggunakan DoubleAnimation untuk membuat persegi panjang yang memudar masuk dan tidak terlihat setelah dimuat.

<StackPanel>
    <StackPanel.Resources>
        <Storyboard x:Name="myStoryboard">
            <DoubleAnimation
          Storyboard.TargetName="MyAnimatedRectangle"
          Storyboard.TargetProperty="Opacity"
          From="1.0" To="0.0" Duration="0:0:3"
          AutoReverse="True" RepeatBehavior="Forever" />
        </Storyboard>
    </StackPanel.Resources>

    <Rectangle Loaded="Start_Animation" x:Name="MyAnimatedRectangle"
     Width="100" Height="100" Fill="Blue" />

</StackPanel>
// Start the animation when the object loads
private void Start_Animation(object sender, RoutedEventArgs e)
{
    myStoryboard.Begin();
}
' Start the animation when the object loads
Private Sub Start_Animation(ByVal sender As Object, ByVal e As EventArgs)
    myStoryboard.Begin()
End Sub
<Canvas>
    <Canvas.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>
    </Canvas.Resources>

    <Rectangle PointerPressed="Pointer_Clicked" Fill="Blue"
 Width="50" Height="50">
        <Rectangle.RenderTransform>
            <TranslateTransform x:Name="MyAnimatedTranslateTransform" />
        </Rectangle.RenderTransform>
    </Rectangle>

</Canvas>
// Start the animation when the object loads
private void Start_Animation(object sender, RoutedEventArgs e)
{
    myStoryboard.Begin();
}
' Start the animation when the object loads
Private Sub Start_Animation(ByVal sender As Object, ByVal e As EventArgs)
    myStoryboard.Begin()
End Sub

Keterangan

Gunakan DoubleAnimation untuk menganimasikan nilai properti dari properti dependensi apa pun yang berjenis Double.

Terkadang Anda harus menggunakan penargetan properti tidak langsung untuk menargetkan sub-properti objek lain yang merupakan nilai properti pada target. Misalnya, untuk menganimasikan komponen X dari RenderTransformUIElement, Anda perlu mereferensikan beberapa nilai properti objek perantara, sampai langkah terakhir dalam jalur properti tidak langsung benar-benar nilai Ganda , seperti halnya dengan TranslateTransform.X. String yang benar untuk digunakan untuk Storyboard.TargetProperty dalam contoh ini adalah "(UIElement.RenderTransform). (TranslateTransform.X)". Untuk informasi selengkapnya tentang penargetan properti tidak langsung dan konsep animasi bercerita lainnya, lihat Animasi papan cerita.

DoubleAnimation biasanya memiliki setidaknya salah satu properti Dari, Menurut , atau Ke yang ditetapkan, tetapi tidak pernah ketiganya.

  • Hanya dari: Animasi maju dari nilai yang ditentukan oleh properti Dari ke nilai dasar properti yang dianimasikan.
  • Dari dan Ke: Animasi berlanjut dari nilai yang ditentukan oleh properti Dari ke nilai yang ditentukan oleh properti Kepada .
  • Dari dan Oleh: Animasi berlangsung dari nilai yang ditentukan oleh properti Dari ke nilai yang ditentukan oleh jumlah properti Dari dan Menurut .
  • Hanya untuk: Animasi berlanjut dari nilai dasar properti animasi atau nilai output animasi sebelumnya ke nilai yang ditentukan oleh properti Kepada .
  • Hanya dengan: Animasi berlanjut dari nilai dasar properti yang dianimasikan atau nilai output animasi sebelumnya ke jumlah nilai tersebut dan nilai yang ditentukan oleh properti Menurut .

Anda tidak dapat menganimasikan nilai X dan Ydari Titik menggunakan DoubleAnimation, karena properti ini bukan properti dependensi (Titik adalah struktur dan tidak dapat memiliki properti dependensi.) Sebagai gantinya, gunakan PointAnimation untuk menganimasikan properti dependensi yang memiliki nilai Titik .

Anda juga tidak dapat menggunakan DoubleAnimation untuk menganimasikan nilai int atau nilai byte . Sebagai gantinya, Anda harus menggunakan ObjectAnimationUsingKeyFrames, yang tidak akan memberi Anda perilaku interpolasi, jadi Anda mungkin perlu menentukan beberapa keyframe untuk mendapatkan animasi yang cukup lancar. Tidak banyak properti dependensi terkait UI yang menggunakan nilai int atau nilai byte , jadi ini seharusnya tidak menjadi skenario umum selain untuk properti kustom.

Properti Dari, Menurut , atau Ke dari DoubleAnimation tidak benar-benar Ganda. Sebaliknya ini adalah Nullable untuk Double. Nilai default untuk ini adalah null, bukan 0. Nilai null itu adalah bagaimana sistem animasi membedakan bahwa Anda belum secara khusus menetapkan nilai. Ekstensi komponen Visual C++ (C++/CX) tidak memiliki jenis Nullable , sehingga menggunakan IReference sebagai gantinya .

Konstruktor

DoubleAnimation()

Menginisialisasi instans baru kelas DoubleAnimation .

Properti

AutoReverse

Mendapatkan atau menetapkan nilai yang menunjukkan apakah garis waktu diputar secara terbalik setelah menyelesaikan perulangan ke depan.

(Diperoleh dari Timeline)
BeginTime

Mendapatkan atau mengatur waktu di mana Garis Waktu ini harus dimulai.

(Diperoleh dari Timeline)
By

Mendapatkan atau mengatur jumlah total di mana animasi mengubah nilai awalnya.

ByProperty

Mengidentifikasi properti Berdasarkan dependensi.

Dispatcher

Mendapatkan CoreDispatcher yang dikaitkan dengan objek ini. CoreDispatcher mewakili fasilitas yang dapat mengakses DependencyObject pada utas UI meskipun kode dimulai oleh utas non-UI.

(Diperoleh dari DependencyObject)
Duration

Mendapatkan atau mengatur lamanya waktu diputarnya garis waktu ini, tidak menghitung pengulangan.

(Diperoleh dari Timeline)
EasingFunction

Mendapatkan atau menyetel fungsi permudah yang diterapkan ke animasi ini.

EasingFunctionProperty

Mengidentifikasi properti dependensi EasingFunction .

EnableDependentAnimation

Mendapatkan atau menetapkan nilai yang menyatakan apakah properti animasi yang dianggap sebagai animasi dependen harus diizinkan untuk menggunakan deklarasi animasi ini.

EnableDependentAnimationProperty

Mengidentifikasi properti dependensi EnableDependentAnimation .

FillBehavior

Mendapatkan atau menetapkan nilai yang menentukan bagaimana animasi berperilaku setelah mencapai akhir periode aktifnya.

(Diperoleh dari Timeline)
From

Mendapatkan atau mengatur nilai awal animasi.

FromProperty

Mengidentifikasi properti Dari dependensi.

RepeatBehavior

Mendapatkan atau mengatur perilaku berulang dari garis waktu ini.

(Diperoleh dari Timeline)
SpeedRatio

Mendapatkan atau menetapkan tarif, relatif terhadap induknya, pada saat itu berlangsung untuk Garis Waktu ini.

(Diperoleh dari Timeline)
To

Mendapatkan atau mengatur nilai akhir animasi.

ToProperty

Mengidentifikasi properti Ke dependensi.

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)

Acara

Completed

Terjadi ketika objek Storyboard telah selesai diputar.

(Diperoleh dari Timeline)

Berlaku untuk

Lihat juga