Condividi tramite


DiscreteDoubleKeyFrame Classe

Definizione

Anima dal valore Double del fotogramma chiave precedente al proprio Valore usando valori discreti.

public ref class DiscreteDoubleKeyFrame sealed : DoubleKeyFrame
/// [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 DiscreteDoubleKeyFrame final : DoubleKeyFrame
/// [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 DiscreteDoubleKeyFrame final : DoubleKeyFrame
[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 DiscreteDoubleKeyFrame : DoubleKeyFrame
[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 DiscreteDoubleKeyFrame : DoubleKeyFrame
Public NotInheritable Class DiscreteDoubleKeyFrame
Inherits DoubleKeyFrame
<DiscreteDoubleKeyFrame .../>
Ereditarietà
Object Platform::Object IInspectable DependencyObject DoubleKeyFrame DiscreteDoubleKeyFrame
Attributi

Requisiti Windows

Famiglia di dispositivi
Windows 10 (è stato introdotto in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)

Esempio

Questo esempio XAML sposta un rettangolo su una schermata. Nell'esempio viene usata la classe DoubleAnimationUsingKeyFrames per animare la proprietà X di un oggetto TranslateTransform applicato a un Rettangolo. Questa animazione usa tre fotogrammi chiave nel modo seguente:

  1. Durante i primi tre secondi, usa un'istanza della classe LinearDoubleKeyFrame per spostare il rettangolo lungo un percorso a una frequenza costante dalla posizione iniziale alla posizione 500. Fotogrammi chiave lineari come LinearDoubleKeyFrame creano una transizione lineare uniforme tra valori.
  2. Alla fine del quarto secondo, usa un'istanza della classe DiscreteDoubleKeyFrame per spostare improvvisamente il rettangolo nella posizione successiva. Fotogrammi chiave discreti come DiscreteDoubleKeyFrame creano salti improvvisi tra valori. In questo esempio, il rettangolo si trova in corrispondenza della posizione iniziale e improvvisamente appare nella posizione 500.
  3. Negli ultimi due secondi, usa un'istanza della classe SplineDoubleKeyFrame per spostare il rettangolo nella posizione iniziale. I fotogrammi chiave spline come SplineDoubleKeyFrame creano una transizione variabile tra valori in base al valore della proprietà KeySpline . In questo esempio, il rettangolo inizia a spostarsi lentamente e quindi accelera in modo esponenziale verso la fine del segmento temporale.
<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 Sub Start_Animation(ByVal sender As Object, ByVal e As EventArgs)
    myStoryboard.Begin()
End Sub
// Start the animation when the object loads
private void Start_Animation(object sender, RoutedEventArgs e)
{
    myStoryboard.Begin();
}

Commenti

Le animazioni con fotogrammi chiave consentono più di un valore di destinazione raggiunto lungo la sequenza temporale dell'animazione. In altre parole, ogni fotogramma chiave può specificare un valore intermedio diverso e l'ultimo fotogramma raggiunto è il valore finale dell'animazione. Specificando più valori da animare è possibile creare animazioni più complesse. È possibile combinare fotogrammi chiave discreti, lineari e spline nella stessa raccolta del fotogramma chiave.

Per altre informazioni su come usare animazioni con fotogrammi chiave, vedere Animazioni con fotogrammi chiave e animazioni delle funzioni di interpolazione.

Costruttori

DiscreteDoubleKeyFrame()

Inizializza una nuova istanza della classe DiscreteDoubleKeyFrame .

Proprietà

Dispatcher

Ottiene CoreDispatcher associato a questo oggetto. CoreDispatcher rappresenta una struttura che può accedere a DependencyObject nel thread dell'interfaccia utente anche se il codice viene avviato da un thread non interfaccia utente.

(Ereditato da DependencyObject)
KeyTime

Ottiene o imposta l'ora in cui deve essere raggiunto il valore di destinazione del fotogramma chiave.

(Ereditato da DoubleKeyFrame)
Value

Ottiene o imposta il valore di destinazione del fotogramma chiave.

(Ereditato da DoubleKeyFrame)

Metodi

ClearValue(DependencyProperty)

Cancella il valore locale di una proprietà di dipendenza.

(Ereditato da DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Restituisce qualsiasi valore di base stabilito per una proprietà di dipendenza, che si applica nei casi in cui un'animazione non è attiva.

(Ereditato da DependencyObject)
GetValue(DependencyProperty)

Restituisce il valore effettivo corrente di una proprietà di dipendenza da un oggetto DependencyObject.

(Ereditato da DependencyObject)
ReadLocalValue(DependencyProperty)

Restituisce il valore locale di una proprietà di dipendenza, se viene impostato un valore locale.

(Ereditato da DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registra una funzione di notifica per l'ascolto delle modifiche a un'istanza di DependencyObject specifica.

(Ereditato da DependencyObject)
SetValue(DependencyProperty, Object)

Imposta il valore locale di una proprietà di dipendenza in un oggetto DependencyObject.

(Ereditato da DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Annulla una notifica di modifica registrata in precedenza chiamando RegisterPropertyChangedCallback.

(Ereditato da DependencyObject)

Si applica a

Vedi anche