DiscreteColorKeyFrame 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
public ref class DiscreteColorKeyFrame sealed : ColorKeyFrame
/// [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 DiscreteColorKeyFrame final : ColorKeyFrame
[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 DiscreteColorKeyFrame : ColorKeyFrame
Public NotInheritable Class DiscreteColorKeyFrame
Inherits ColorKeyFrame
<DiscreteColorKeyFrame .../>
- 繼承
- 屬性
範例
這個 XAML 範例會使用ColorAnimationUsingKeyFrames類別,以動畫顯示StackPanel的Background屬性。 這個動畫會以下列方式使用三個主要畫面格:
- 在前兩秒, LinearColorKeyFrame 會逐漸將色彩從綠色變更為紅色。 線性主要畫面格,例如 LinearColorKeyFrame ,會在值之間建立平滑的線性轉換。
- 在下半秒結束時,DiscreteColorKeyFrame 會快速將色彩從紅色變更為黃色。 DiscreteColorKeyFrame 之類的離散主要畫面格會在值之間建立突然變更;動畫會快速發生,而且值之間完全沒有插補。
- 在最後兩秒, SplineColorKeyFrame 會再次變更色彩,這次從黃色回到綠色。 SplineColorKeyFrame 之類的曲線主要畫面格會根據KeySpline屬性的值,在值之間建立變數轉換。 KeySpline提供一種方式來改變動畫期間的時間與值之間的關聯性,特別是關聯性可能是難以使用個別主要畫面格產生的曲線。 在此範例中,色彩變更一開始速度緩慢,然後在接近時間區段結尾時會以指數方式加速。
<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>
// Start the animation when the object loads
private void Start_Animation(object sender, RoutedEventArgs e)
{
colorStoryboard.Begin();
}
備註
主要畫面格動畫允許多個目標值,這些值會在動畫時間軸的某個時間到達。 換句話說,每個主要畫面格都可以指定不同的中繼值,最後一個到達的主要畫面格就是最終的動畫值。 在動畫中指定多個值可以製作更複雜的動畫。 您可以在相同的主要畫面格集合中混合離散、線性和曲線主要畫面格。
如需如何使用主要畫面格動畫的詳細資訊,請參閱 主要畫面格動畫和 Easing 函式動畫。
建構函式
DiscreteColorKeyFrame() |
初始化 DiscreteColorKeyFrame 類別的新實例。 |
屬性
Dispatcher |
一律會在Windows 應用程式 SDK應用程式中傳 |
DispatcherQueue |
|
KeyTime |
取得或設定應該到達主要畫面格目標 Value 的時間。 (繼承來源 ColorKeyFrame) |
Value |
取得或設定主要畫面格的目標值。 (繼承來源 ColorKeyFrame) |
方法
ClearValue(DependencyProperty) |
清除相依性屬性的本機值。 (繼承來源 DependencyObject) |
GetAnimationBaseValue(DependencyProperty) |
傳回為相依性屬性建立的任何基底值,如果動畫未使用中,則適用此屬性。 (繼承來源 DependencyObject) |
GetValue(DependencyProperty) |
從 DependencyObject傳回相依性屬性的目前有效值。 (繼承來源 DependencyObject) |
ReadLocalValue(DependencyProperty) |
如果已設定本機值,則傳回相依性屬性的本機值。 (繼承來源 DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
註冊通知函式,以接聽此DependencyObject實例上特定DependencyProperty的變更。 (繼承來源 DependencyObject) |
SetValue(DependencyProperty, Object) |
設定 DependencyObject上相依性屬性的本機值。 (繼承來源 DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
取消先前透過呼叫 RegisterPropertyChangedCallback註冊的變更通知。 (繼承來源 DependencyObject) |
適用於
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應