Bahasa

ColorAnimation Kelas

Definisi

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

public ref class ColorAnimation sealed : Timeline
/// [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 ColorAnimation final : Timeline
[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 ColorAnimation : Timeline
Public NotInheritable Class ColorAnimation
Inherits Timeline
<ColorAnimation .../>
Warisan
Object Platform::Object IInspectable DependencyObject Timeline ColorAnimation
Atribut

Contoh

Contoh berikut menunjukkan cara menggunakan ColorAnimation untuk menganimasikan warna latar belakang StackPanel.

<StackPanel x:Name="myStackPanel" Background="Red"
  Loaded="Start_Animation">
  <StackPanel.Resources>
    <Storyboard x:Name="colorStoryboard">

      <!-- Animate the background color of the canvas from red to green
        over 4 seconds. -->
      <ColorAnimation Storyboard.TargetName="myStackPanel" 
        Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)"
        From="Red" To="Blue" Duration="0:0:4"/>

    </Storyboard>
  </StackPanel.Resources>
</StackPanel>
<StackPanel x:Name="myStackPanel" Background="Red"
Loaded="Start_Animation">
    <StackPanel.Resources>
        <Storyboard x:Name="colorStoryboard">

            <ColorAnimationUsingKeyFrames Storyboard.TargetName="myStackPanel" 
      Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
                
                <!-- Go from green to red in the first 2 seconds. LinearColorKeyFrame creates
                a smooth, linear animation between values. -->
                <LinearColorKeyFrame Value="Blue" KeyTime="00:00:02" />

                <!-- In the next half second, go to yellow. DiscreteColorKeyFrame creates a 
                sudden jump between values. -->
                <DiscreteColorKeyFrame Value="Yellow" KeyTime="00:00:2.5" />

                <!-- In the final 2 seconds of the animation, go from yellow back to green. SplineColorKeyFrame 
                creates a variable transition between values depending on the KeySpline property. In this example,
                the animation starts off slow but toward the end of the time segment, it speeds up exponentially.-->
                <SplineColorKeyFrame Value="Green" KeyTime="00:00:4.5" KeySpline="0.6,0.0 0.9,0.00" />

            </ColorAnimationUsingKeyFrames>
        </Storyboard>
    </StackPanel.Resources>
</StackPanel>
<StackPanel Loaded="Start_Animation">
  <StackPanel.Resources>
    <Storyboard x:Name="colorStoryboard">
      <!-- Animate the background color of the canvas from red to green
        over 4 seconds. -->
      <ColorAnimation Storyboard.TargetName="mySolidColorBrush"
        Storyboard.TargetProperty="Color" From="Red" To="Blue" Duration="0:0:4"/>
    </Storyboard>
  </StackPanel.Resources>

  <StackPanel.Background>
    <SolidColorBrush x:Name="mySolidColorBrush" Color="Red" />
  </StackPanel.Background>

</StackPanel>
// Start the animation when the object loads.
private void Start_Animation(object sender, RoutedEventArgs e)
{
    colorStoryboard.Begin();
}
Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)"

Atau, Anda dapat secara eksplisit membuat SolidColorBrush, menamainya, dan menargetkan properti Warnanya secara langsung. Contoh di bawah ini menunjukkan cara membuat animasi yang sama dengan yang sebelumnya kecuali menggunakan penargetan properti langsung.

<StackPanel Loaded="Start_Animation">
  <StackPanel.Resources>
    <Storyboard x:Name="colorStoryboard">
      <!-- Animate the background color of the canvas from red to green
        over 4 seconds. -->
      <ColorAnimation Storyboard.TargetName="mySolidColorBrush"
        Storyboard.TargetProperty="Color" From="Red" To="Blue" Duration="0:0:4"/>
    </Storyboard>
  </StackPanel.Resources>

  <StackPanel.Background>
    <SolidColorBrush x:Name="mySolidColorBrush" Color="Red" />
  </StackPanel.Background>

</StackPanel>
// Start the animation when the object loads.
private void Start_Animation(object sender, RoutedEventArgs e)
{
    colorStoryboard.Begin();
}

Keterangan

Gunakan ColorAnimation untuk menganimasikan nilai properti properti dependensi apa pun yang berjenis Color.

Interpolasi linier untuk Warna berarti bahwa masing-masing nilai ARGB diperlakukan sebagai byte dan interpolasi hanyalah operasi matematika. Anda mendapatkan hasil terbaik dari interpolasi warna jika setidaknya salah satu komponen RGB sama atau dekat dengan yang sama dalam nilai awal dan nilai akhir.

Anda biasanya perlu menggunakan penargetan properti tidak langsung untuk menargetkan sub-properti objek lain yang merupakan nilai properti pada target. Ini karena sangat sedikit properti yang menampilkan informasi warna dalam elemen UI sebenarnya berjenis Color. Sebagian besar bukan jenis Brush. Untuk menggunakan ColorAnimation pada elemen UI, Anda biasanya menargetkan properti Warnadari SolidColorBrush yang merupakan nilai sub-properti. Sintaks untuk ini ditampilkan dalam contoh XAML di bagian "Contoh". Untuk informasi selengkapnya tentang penargetan properti tidak langsung dan konsep animasi bercerita lainnya, lihat Animasi papan cerita atau sintaks jalur properti.

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

  • Hanya dari: Animasi berlanjut 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 berlanjut dari nilai yang ditentukan oleh properti Dari ke nilai yang ditentukan oleh jumlah properti Dari dan Menurut .
  • Untuk hanya: 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 .

Properti Dari, Menurut, dan Ke dari ColorAnimation tidak benar-benar warna. Sebaliknya ini adalah Nullable untuk Color. Nilai default untuk ini adalah null, bukan struktur yang tidak diinisialisasi. Nilai null itu adalah bagaimana sistem animasi membedakan bahwa Anda belum secara khusus menetapkan nilai. C++ tidak memiliki jenis Nullable , sehingga menggunakan IReference sebagai gantinya .

Konstruktor

Nama Deskripsi
ColorAnimation()

Menginisialisasi instans baru kelas ColorAnimation .

Properti

Nama Deskripsi
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

Selalu kembali null di aplikasi SDK Aplikasi Windows. Gunakan DispatcherQueue sebagai gantinya .

(Diperoleh dari DependencyObject)
DispatcherQueue

DispatcherQueue Mendapatkan bahwa objek ini dikaitkan dengan. mewakili DispatcherQueue fasilitas yang dapat mengakses DependencyObject pada utas UI bahkan jika kode dimulai oleh utas non-UI.

(Diperoleh dari DependencyObject)
Duration

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

(Diperoleh dari Timeline)
EasingFunction

Mendapatkan atau mengatur fungsi permudah yang diterapkan pada animasi ini.

EasingFunctionProperty

Mengidentifikasi properti dependensi EasingFunction .

EnableDependentAnimation

Mendapatkan atau menetapkan nilai yang menyatakan apakah properti animasi yang dianggap 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 laju, relatif terhadap induknya, di mana waktu berlangsung untuk Garis Waktu ini.

(Diperoleh dari Timeline)
To

Mendapatkan atau mengatur nilai akhir animasi.

ToProperty

Mengidentifikasi properti Ke dependensi.

Metode

Nama Deskripsi
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 diatur.

(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

Nama Deskripsi
Completed

Terjadi ketika objek Storyboard telah selesai diputar.

(Diperoleh dari Timeline)

Berlaku untuk

Lihat juga