Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto manualmente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale.
Traduzione
Originale

Classe SplineRotation3DKeyFrame

Aggiunge un'animazione dal valore di Rotation3D del fotogramma chiave precedente fino al proprio oggetto Value utilizzando l'interpolazione spline.

Spazio dei nomi:  System.Windows.Media.Animation
Assembly:  PresentationCore (in PresentationCore.dll)
XMLNS per XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

public class SplineRotation3DKeyFrame : Rotation3DKeyFrame

Il tipo SplineRotation3DKeyFrame espone i seguenti membri.

  NomeDescrizione
Metodo pubblicoSplineRotation3DKeyFrame()Inizializza una nuova istanza della classe SplineRotation3DKeyFrame.
Metodo pubblicoSplineRotation3DKeyFrame(Rotation3D)Inizializza una nuova istanza della classe SplineRotation3DKeyFrame con il valore finale specificato.
Metodo pubblicoSplineRotation3DKeyFrame(Rotation3D, KeyTime)Inizializza una nuova istanza della classe SplineRotation3DKeyFrame con il valore finale e la chiave temporale specificati.
Metodo pubblicoSplineRotation3DKeyFrame(Rotation3D, KeyTime, KeySpline)Inizializza una nuova istanza della classe SplineRotation3DKeyFrame con il valore finale, la chiave temporale e KeySpline specificati.
In alto

  NomeDescrizione
Proprietà pubblicaCanFreezeOttiene un valore che indica se è possibile rendere immodificabile l’oggetto. (Ereditato da Freezable)
Proprietà pubblicaDependencyObjectType Ottiene il DependencyObjectType che esegue il wrapping CLR del tipo dell'istanza. (Ereditato da DependencyObject)
Proprietà pubblicaDispatcher Ottiene l'oggetto Dispatcher al quale l'oggetto DispatcherObject è associato. (Ereditato da DispatcherObject)
Proprietà pubblicaIsFrozenOttiene un valore che indica se l’oggetto è attualmente immodificabile. (Ereditato da Freezable)
Proprietà pubblicaIsSealedOttiene un valore che indica se l'istanza è attualmente sealed (di sola lettura). (Ereditato da DependencyObject)
Proprietà pubblicaKeySplineOttiene o imposta i due punti di controllo che definiscono lo stato di avanzamento dell'animazione per questo fotogramma chiave.
Proprietà pubblicaKeyTime Ottiene o imposta il momento in cui l'oggetto Value di destinazione del fotogramma chiave deve essere raggiunto. (Ereditato da Rotation3DKeyFrame)
Proprietà pubblicaValue Ottiene o imposta il valore di destinazione del fotogramma chiave. (Ereditato da Rotation3DKeyFrame)
In alto

  NomeDescrizione
Metodo pubblicoCheckAccess Determina se il thread chiamante ha accesso a questo DispatcherObject. (Ereditato da DispatcherObject)
Metodo pubblicoClearValue(DependencyProperty) Cancella il valore locale di una proprietà. La proprietà da cancellare viene specificata da un identificatore DependencyProperty. (Ereditato da DependencyObject)
Metodo pubblicoClearValue(DependencyPropertyKey)Cancella il valore locale di una proprietà di sola lettura. La proprietà da cancellare è indicata da un identificatore DependencyPropertyKey. (Ereditato da DependencyObject)
Metodo pubblicoCloneCrea un clone modificabile dell'oggetto Freezable corrente, eseguendo copie complete dei valori dell'oggetto. In caso di copia delle proprietà di dipendenza dell'oggetto, questo metodo copia le espressioni (che non potrebbe più risolvere) ma non le animazioni o i valori correnti. (Ereditato da Freezable)
Metodo protettoCloneCoreSi prenda ad esempio un clone (copia completa) di Freezable specificato utilizzando valori della proprietà di base (non-animati). (Ereditato da Freezable)
Metodo pubblicoCloneCurrentValueCrea un clone modificabile (copia completa) di Freezable utilizzando i valori correnti. (Ereditato da Freezable)
Metodo protettoCloneCurrentValueCoreRende l’istanza una copia modificabile (copia completa) dell'oggetto Freezable specificato utilizzando i valori della proprietà correnti. (Ereditato da Freezable)
Metodo pubblicoCoerceValueAssegna il valore della proprietà di dipendenza specificata. Questa operazione viene eseguita richiamando qualsiasi funzione CoerceValueCallback specificata nei metadati della proprietà di dipendenza, esistente nell'oggetto DependencyObject chiamante. (Ereditato da DependencyObject)
Metodo protettoCreateInstanceInizializza una nuova istanza della classe Freezable. (Ereditato da Freezable)
Metodo protettoCreateInstanceCoreCrea una nuova istanza di SplineRotation3DKeyFrame. (Esegue l'override di Freezable.CreateInstanceCore()).
Metodo pubblicoEquals Determina se il DependencyObject fornito equivale al DependencyObject corrente. (Ereditato da DependencyObject)
Metodo protettoFinalize Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulizia prima che l'oggetto stesso venga reclamato dalla procedura di Garbage Collection. (Ereditato da Object)
Metodo pubblicoFreeze()Rende immodificabile l'oggetto corrente e imposta la proprietà IsFrozen su true. (Ereditato da Freezable)
Metodo protettoFreezeCoreRende immodificabile l'oggetto Freezable o verifica se può essere reso immodificabile. (Ereditato da Freezable)
Metodo pubblicoGetAsFrozenCrea una copia bloccata di Freezable, utilizzando valori delle proprietà di base (non-animati). Dato che la copia è bloccata, gli oggetti secondari bloccati sono copiati dal riferimento. (Ereditato da Freezable)
Metodo protettoGetAsFrozenCoreSi prenda ad esempio una copia bloccata di Freezable specificato utilizzando valori della proprietà di base (non-animati). (Ereditato da Freezable)
Metodo pubblicoGetCurrentValueAsFrozenCrea una copia bloccata di Freezable utilizzando valori della proprietà correnti. Dato che la copia è bloccata, gli oggetti secondari bloccati sono copiati dal riferimento. (Ereditato da Freezable)
Metodo protettoGetCurrentValueAsFrozenCoreRende l’istanza corrente una copia bloccata di Freezablespecificato. Se l'oggetto dispone di proprietà di dipendenza animate, i valori animati correnti vengono copiati. (Ereditato da Freezable)
Metodo pubblicoGetHashCodeOttiene un codice hash per questo oggetto DependencyObject. (Ereditato da DependencyObject)
Metodo pubblicoGetLocalValueEnumeratorCrea un enumeratore specializzato per determinare le proprietà di dipendenza che presentano valori impostati localmente nell'oggetto DependencyObject. (Ereditato da DependencyObject)
Metodo pubblicoGetType Ottiene il Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblicoGetValueRestituisce il valore effettivo corrente di una proprietà di dipendenza in questa istanza di DependencyObject. (Ereditato da DependencyObject)
Metodo pubblicoInterpolateValueRestituisce il valore interpolato di un fotogramma chiave specifico all'incremento dello stato di avanzamento fornito. (Ereditato da Rotation3DKeyFrame)
Metodo protettoInterpolateValueCoreUtilizza l'interpolazione spline per la transizione tra il valore del fotogramma chiave precedente e quello del fotogramma chiave corrente. (Esegue l'override di Rotation3DKeyFrame.InterpolateValueCore(Rotation3D, Double)).
Metodo pubblicoInvalidatePropertyValuta di nuovo il valore effettivo della proprietà di dipendenza specificata. (Ereditato da DependencyObject)
Metodo protettoMemberwiseClone Crea una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo protettoOnChangedViene chiamato quando l'oggetto Freezable corrente viene modificato. (Ereditato da Freezable)
Metodo protettoOnFreezablePropertyChanged(DependencyObject, DependencyObject)Assicura che adatti puntatori del contesto siano stabiliti per un membro dati DependencyObjectType che è appena stato impostato. (Ereditato da Freezable)
Metodo protettoOnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)Questo membro supporta l'infrastruttura Windows Presentation Foundation (WPF) e non può essere utilizzato direttamente dal codice. (Ereditato da Freezable)
Metodo protettoOnPropertyChangedEsegue l'override dell'implementazione DependencyObject di OnPropertyChanged per richiamare anche qualsiasi gestore Changed in risposta a una modifica della proprietà di dipendenza di tipo Freezable. (Ereditato da Freezable)
Metodo pubblicoReadLocalValueRestituisce il valore locale di una proprietà di dipendenza, se esistente. (Ereditato da DependencyObject)
Metodo protettoReadPreambleAssicura che l’accesso di Freezable sia stato eseguito da un thread valido. Gli eredi di Freezable devono chiamare questo metodo all'inizio di qualsiasi API che legge i membri dei dati che non sono proprietà della dipendenza. (Ereditato da Freezable)
Metodo pubblicoSetCurrentValueImposta il valore di una proprietà di dipendenza senza modificare l'origine del valore. (Ereditato da DependencyObject)
Metodo pubblicoSetValue(DependencyProperty, Object)Imposta il valore locale di una proprietà di dipendenza, specificata dal relativo identificatore. (Ereditato da DependencyObject)
Metodo pubblicoSetValue(DependencyPropertyKey, Object) Imposta il valore locale di una proprietà di dipendenza di sola lettura, specificato dall'identificatore della proprietà di dipendenza DependencyPropertyKey. (Ereditato da DependencyObject)
Metodo protettoShouldSerializeProperty Restituisce un valore che indica se i processi di serializzazione devono serializzare il valore fornito per la proprietà di dipendenza specificata. (Ereditato da DependencyObject)
Metodo pubblicoToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)
Metodo pubblicoVerifyAccess Impone che il thread chiamante abbia accesso a questo DispatcherObject. (Ereditato da DispatcherObject)
Metodo protettoWritePostscriptGenera l'evento Changed per Freezable e richiama il metodo OnChanged. Le classi che derivano da Freezable devono chiamare questo metodo alla fine di qualsiasi API che modifica i membri della classe non archiviati come proprietà di dipendenza. (Ereditato da Freezable)
Metodo protettoWritePreambleVerifica che l'oggetto Freezable non sia bloccato e che l'accesso sia eseguito da un contesto di threading valido. Gli eredi di Freezable devono chiamare questo metodo all'inizio di qualsiasi API che scrive sui membri dei dati che non sono proprietà della dipendenza. (Ereditato da Freezable)
In alto

  NomeDescrizione
Evento pubblicoChangedSi verifica quando Freezable o un oggetto che contiene è modificato. (Ereditato da Freezable)
In alto

  NomeDescrizione
Campo pubblicoMembro staticoKeySplinePropertyIdentifica la proprietà di dipendenza KeySpline.
In alto

  NomeDescrizione
Implementazione esplicita dell'interfacciaProprietà privataIKeyFrame.ValueOttiene o imposta il valore associato con un'istanza KeyTime. (Ereditato da Rotation3DKeyFrame)
In alto

Questa classe viene utilizzata come parte di Rotation3DKeyFrameCollection in combinazione con Rotation3DAnimationUsingKeyFrames per aggiungere un'animazione a un valore della proprietà di Rotation3D in un set di fotogrammi chiave.

Un fotogramma chiave definisce un segmento di Rotation3DAnimationUsingKeyFrames al quale appartiene. Ogni fotogramma chiave dispone di Value di destinazione e di KeyTime. KeyTime specifica il momento in cui dovrebbe essere raggiunto l'oggetto Value del fotogramma chiave. Un fotogramma chiave aggiunge un'animazione dal valore di destinazione del fotogramma chiave precedente al proprio valore di destinazione. Ha inizio quando termina il fotogramma chiave precedente e termina quando viene raggiunta la chiave temporale.

I fotogrammi chiave della spline come SplineRotation3DKeyFrame creano una transizione variabile tra valori determinata dalla proprietà KeySpline. L'interpolazione spline può essere utilizzata per realizzare effetti realistici in termini di tempo, ad esempio, accelerazione e decelerazione.

In the following example, Point3DAnimationUsingKeyFrames is used to animate the position of a PerspectiveCamera in a 3D scene. In addition, Vector3DAnimationUsingKeyFrames is used to animate the direction the camera is pointing in the 3D scene. Both of these animations use several key frames which create a series of animation effects:

  1. LinearPoint3DKeyFrame and LinearVector3DKeyFrame are used to create a smooth, linear interpolation between values.

  2. DiscretePoint3DKeyFrame and DiscreteVector3DKeyFrame are used to create sudden "jumps" between values (no interpolation).

  3. SplinePoint3DKeyFrame and SplineVector3DKeyFrame are used to create a variable transition between values depending on the KeySpline property. In the example below, the animation starts off slow but toward the end of the time segment, speeds up exponentially.


<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
  <DockPanel>
    <Viewbox>
      <Canvas Width="321" Height="201">

        <Viewport3D Name="MyAnimatedObject"
          ClipToBounds="True" Width="150" Height="150"
          Canvas.Left="0" Canvas.Top="10">

          <!-- Defines the camera used to view the 3D object. The position and direction of this 
               camera is animated in the Storyboard below. -->
          <Viewport3D.Camera>
            <PerspectiveCamera x:Name="myPerspectiveCamera" Position="0,0,2" LookDirection="0,0,-1" 
             FieldOfView="45" />
          </Viewport3D.Camera>
          <Viewport3D.Children>
            <ModelVisual3D>
              <ModelVisual3D.Children>

                <!-- This resource defines the 3D cube that is used in this example.-->
                <StaticResource ResourceKey="PictureCubeModelVisual3DResource" />
              </ModelVisual3D.Children>

            </ModelVisual3D>
          </Viewport3D.Children>
          <Viewport3D.Triggers>
            <EventTrigger RoutedEvent="Viewport3D.Loaded">
              <BeginStoryboard>
                <Storyboard>

                  <!-- This animation moves the camera around the object. The object is not
                       changing position or rotating but moving the camera makes it appear that
                       it is.-->
                  <Point3DAnimationUsingKeyFrames
                   Storyboard.TargetName="myPerspectiveCamera" 
                   Storyboard.TargetProperty="Position" >
                    <Point3DAnimationUsingKeyFrames.KeyFrames>

                      <!-- Using a LinearPoint3DKeyFrame, the camera moves steadily from its
                           starting position to a new position that is to the upper right and a 
                           little farther away. This happens over the first second of the animation. -->
                      <LinearPoint3DKeyFrame Value="1,2,3" KeyTime="0:0:1" />

                      <!-- Using a DiscretePoint3DKeyFrame, the camera suddenly moves farther away
                           from the object. This happens immdeiately after the first 1 and a half second
                           of the animation. -->
                      <DiscretePoint3DKeyFrame Value="1,2,5" KeyTime="0:0:1.5" />

                      <!-- Using a SplinePoint3DKeyFrame, the camera moves back to its starting point. The
                           animation starts out slowly at first and then speeds up. This KeyFrame ends 
                           after the fourth second. -->
                      <SplinePoint3DKeyFrame KeySpline="0.6,0.0 0.9,0.00" Value="0,0,2" KeyTime="0:0:4" />
                    </Point3DAnimationUsingKeyFrames.KeyFrames>
                  </Point3DAnimationUsingKeyFrames>


                  <!-- As the position of the camera changes using the Point3DAnimation
                       above, the direction the camera is pointing swivels to keep the object
                       within the view of the camera. -->
                  <Vector3DAnimationUsingKeyFrames
                   Storyboard.TargetName="myPerspectiveCamera" 
                   Storyboard.TargetProperty="LookDirection" >
                    <Vector3DAnimationUsingKeyFrames.KeyFrames>

                      <!-- Using a LinearVector3DKeyFrame, the camera swivels steadily from its
                           starting position down and to the left. This happens over the 
                           first second of the animation. -->
                      <LinearVector3DKeyFrame Value="-1,-2,-3" KeyTime="0:0:1" />

                      <!-- Using a DiscreteVector3DKeyFrame, the camera suddenly swivels up. This happens  
                           immdeiately after the first 1 and a half second of the animation. -->
                      <DiscreteVector3DKeyFrame Value="-1,-1,-3" KeyTime="0:0:1.5" />

                      <!-- Using a SplineVector3DKeyFrame, the camera swivels back to its starting point. 
                           The animation starts out slowly at first and then speeds up. This KeyFrame ends 
                           after the fourth second. -->
                      <SplineVector3DKeyFrame KeySpline="0.6,0.0 0.9,0.00" Value="0,0,-1" KeyTime="0:0:4" />

                    </Vector3DAnimationUsingKeyFrames.KeyFrames>
                  </Vector3DAnimationUsingKeyFrames>

                </Storyboard>
              </BeginStoryboard>
            </EventTrigger>
          </Viewport3D.Triggers>
        </Viewport3D>
      </Canvas>

    </Viewbox>
  </DockPanel>
</Page>


.NET Framework

Supportato in: 4, 3.5, 3.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 o versione successiva, Windows XP SP3, Windows Server 2008 (componenti di base del server non supportati), Windows Server 2008 R2 (componenti di base del server supportati con SP1 o versione successiva), Windows Server 2003 SP2

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2015 Microsoft