Cette documentation est archivée et n’est pas conservée.

SplineThicknessKeyFrame, classe

Mise à jour : novembre 2007

Passe de la valeur Thickness correspondant à la précédente image clé à sa propre valeur Value en utilisant une opération d'interpolation spline.

Espace de noms :  System.Windows.Media.Animation
Assembly :  PresentationFramework (dans PresentationFramework.dll)
XMLNS pour XAML : http://schemas.microsoft.com/winfx/xaml/presentation

public class SplineThicknessKeyFrame : ThicknessKeyFrame
public class SplineThicknessKeyFrame extends ThicknessKeyFrame
public class SplineThicknessKeyFrame extends ThicknessKeyFrame
<SplineThicknessKeyFrame .../>

Cette classe est utilisée dans le cadre d'une collection ThicknessKeyFrameCollection avec un ThicknessAnimationUsingKeyFrames afin d'animer une valeur de la propriété Thickness en fonction d'un ensemble d'images clés.

Une image clé définit un segment du ThicknessAnimationUsingKeyFrames auquel elle appartient. Chaque image clé a un Value cible et un KeyTime. Le KeyTime spécifie l'heure à laquelle la valeur Value de l'image clé doit être atteinte. Une image clé passe de la valeur cible de l'image clé précédente à sa propre valeur cible. Elle démarre à la fin de l'image clé précédente et s'achève au terme de sa propre période de clé.

Les images clé de spline telles que SplineThicknessKeyFrame permettent d'assurer une transition à paramètres variables entre les valeurs, transition déterminée par la propriété KeySpline. L'interpolation spline peut être utilisée pour obtenir des effets de minutage, tels que des effets d'accélération et de décélération, plus proches de la réalité.

Cet exemple montre comment animer la propriété BorderThickness d'un Border.

L'exemple suivant utilise la classe ThicknessAnimationUsingKeyFrames pour animer la propriété BorderThickness d'un Border. Cette animation utilise trois images clés de la manière suivante :

  1. Pendant la première demi-seconde, utilise une instance de la classe LinearThicknessKeyFrame pour augmenter progressivement l'épaisseur de la bordure. L'exemple utilise LinearThicknessKeyFrame pour créer une augmentation linéaire fluide entre les valeurs.

  2. Au bout de la demi-seconde suivante, utilise une instance de la classe DiscreteThicknessKeyFrame pour augmenter soudainement l'épaisseur de la bordure. Les images clés discrètes comme celles dérivées de DiscreteThicknessKeyFrame créent des sauts soudains entre les valeurs ; autrement dit, le mouvement de l'animation est saccadé.

  3. Pendant les deux dernières secondes, utilise une instance de la classe SplineThicknessKeyFrame pour réduire l'épaisseur de la bordure. Des images clé Spline telles que celles dérivées de SplineThicknessKeyFrame créent une transition variable entre des valeurs en fonction des valeurs de la propriété KeySpline. Dans cette image clé, l'animation commence lentement et accélère de façon exponentielle vers la fin du segment temporel.

<!-- This example shows how to use the ThicknessAnimationUsingKeyFrames to create
an animation on the BorderThickness property of a Border. -->
<Page  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  x:Class="Microsoft.Samples.KeyFrameExamples.ThicknessAnimationUsingKeyFramesExample"
  Name="myRootElement"
  WindowTitle="ThicknessAnimationUsingKeyFrames Example">

  <StackPanel Orientation="Vertical" HorizontalAlignment="Center">
    <Border Background="#99FFFFFF" BorderBrush="#CCCCFF" BorderThickness="1"
    Margin="0,60,0,20" Padding="20"  >
      <Border.Triggers>
        <EventTrigger RoutedEvent="Border.Loaded">
          <BeginStoryboard>
            <Storyboard>

              <!-- Animating the BorderThickness property uses 3 KeyFrames. -->
              <ThicknessAnimationUsingKeyFrames
                Storyboard.TargetProperty="BorderThickness"
                Duration="0:0:5" FillBehavior="HoldEnd" RepeatBehavior="Forever">
                <ThicknessAnimationUsingKeyFrames.KeyFrames>

                  <!-- Using a LinearThicknessKeyFrame, thickness increases gradually
                  over the first half second of the animation. -->
                  <LinearThicknessKeyFrame KeyTime="0:0:0.5">
                    <LinearThicknessKeyFrame.Value>
                      <Thickness Left="8" Right="8" Top="6" Bottom="6" />
                    </LinearThicknessKeyFrame.Value>
                  </LinearThicknessKeyFrame>

                  <!-- Using a DiscreteThicknessKeyFrame, thickness increases suddenly
                  after the first second of the animation. -->
                  <DiscreteThicknessKeyFrame KeyTime="0:0:1">
                    <DiscreteThicknessKeyFrame.Value>
                      <Thickness Left="28" Right="28" Top="24" Bottom="24" />
                    </DiscreteThicknessKeyFrame.Value>
                  </DiscreteThicknessKeyFrame>

                  <!-- Using a SplineThicknessKeyFrame, thickness decreases slowly at first
                  and then suddenly contracts. This KeyFrame takes 2 seconds. -->
                  <SplineThicknessKeyFrame KeySpline="0.6,0.0 0.9,0.00" KeyTime="0:0:3">
                    <SplineThicknessKeyFrame.Value>
                      <Thickness Left="1" Right="1" Top="1" Bottom="8" />
                    </SplineThicknessKeyFrame.Value>
                  </SplineThicknessKeyFrame>

                </ThicknessAnimationUsingKeyFrames.KeyFrames>
              </ThicknessAnimationUsingKeyFrames>
            </Storyboard>
          </BeginStoryboard>
        </EventTrigger>
      </Border.Triggers>

      <TextBlock>
        This example shows how to use the ThicknessAnimationUsingKeyFrames to create
        an animation on the BorderThickness property of a Border. 
      </TextBlock>
    </Border>

  </StackPanel>
</Page>


Pour l'exemple complet, consultez Animation d'image clé, exemple.

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows Vista

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0
Afficher: