Partager via


Storyboard.SetTargetProperty(Timeline, String) Méthode

Définition

Définit la valeur de la propriété XAML Storyboard.TargetProperty pour un élément cible.

public:
 static void SetTargetProperty(Timeline ^ element, Platform::String ^ path);
 static void SetTargetProperty(Timeline const& element, winrt::hstring const& path);
public static void SetTargetProperty(Timeline element, string path);
function setTargetProperty(element, path)
Public Shared Sub SetTargetProperty (element As Timeline, path As String)

Paramètres

element
Timeline

Élément cible pour lequel définir la valeur.

path
String

Platform::String

winrt::hstring

Valeur Storyboard.TargetProperty de l’élément cible à définir. Cela spécifie un chemin d’accès de qualification qui cible la propriété de dépendance où l’animation s’applique. Voir les remarques.

Remarques

L’utilisation de SetTargetProperty dans le code par opposition au ciblage d’une animation dans les définitions XAML initiales est rare. Il est difficile d’obtenir tout le ciblage et le minutage corrects dans une animation, en particulier si vous essayez d’incorporer des valeurs qui ne sont disponibles qu’au moment de l’exécution. Nous vous recommandons de créer vos animations en XAML, ce qui signifie que vous allez utiliser la propriété jointe Storyboard.TargetProperty , et non la méthode d’exécution SetTargetProperty (qui prend en charge le code XAML en arrière-plan). La création d’animations dans le code est un scénario avancé. Voici un exemple de code très simple de ce qui est impliqué :

Rectangle rect = new Rectangle();
rect.RenderTransform = new ScaleTransform();
//TODO - connect this Rectangle to the visual tree
Storyboard storyboard = new Storyboard();
DoubleAnimation scalex = new DoubleAnimation()
{
    From = 0,
    To = 8,
    AutoReverse = true,
    Duration = TimeSpan.FromSeconds(2)
};
Storyboard.SetTargetProperty(scalex, "(Rectangle.RenderTransform).(ScaleTransform.ScaleX)");
Storyboard.SetTarget(scalex, rect);
//TODO - Begin the animation

Chemins de propriété pour le ciblage des propriétés d’animation

La propriété jointe Storyboard.TargetProperty est généralement définie sur les animations dérivées de chronologie individuelles qui composent la collection Storyboard.Children d’une définition d’animation en XAML.

La propriété Storyboard.TargetName peut traiter une syntaxe de chaîne qui permet de cibler une sous-propriété d’une valeur de propriété. La syntaxe utilise une métaphore « dot-down » pour cibler une chaîne de relations objet-propriété jusqu’à ce qu’une sous-propriété particulière soit identifiée. Cela permet aux animations de s’appliquer aux types valeur dans lesquels il existe une structure d’animation de prise en charge (Double, Color, Point et Object pour DiscreteObjectKeyFrameAnimation). Par exemple, vous pouvez animer la valeur d’arrière-plan d’un contrôle, qui prend un type d’objet Brush. Il n’existe aucun type d’animation « BrushAnimation », de sorte que vous ne pouvez pas cibler directement une animation pour l’arrière-plan . Mais ce que vous pouvez faire à la place est de référencer une sous-propriété SolidColorBrush nommée Color, qui prend la couleur de type et peut donc être ciblée par une ColorAnimation. La syntaxe de chaîne est la suivante :

(Control.Background).(SolidColorBrush.Color)

Les parenthèses autour de « (Control.Background) » informent le traitement que le « point » intermédiaire ne doit pas « pointer » et fait plutôt partie du nom de qualification qui recherche la propriété Background qualifié propriétairetype pour le ciblage. Le « point » suivant est traité comme une instruction « dot-down », qui demande une sous-propriété du type Brush . Le fragment final « (SolidColorBrush.Color) » inclut à nouveau les parenthèses afin que l’intérieur « dot » soit de nouveau utilisé comme qualification ownertype.member , et non un « dot-down ».

Notez que pour les valeurs de sous-propriété, il peut y avoir une inférence de valeur. Par exemple, la chaîne suivante fonctionne par inférence même si « Color » est en fait une valeur de la sous-classe Brush particulier SolidColorBrush :

(Control.Background).Color

Il y a beaucoup plus de spécifications de chemin de propriété que cela. Cette remarque vise simplement à vous familiariser avec les scénarios de ciblage de base. Pour plus d’informations, consultez la syntaxe property-path et les animations storyboarded.

Notes de migration

Lorsque vous spécifiez une valeur de chemin d’accès pour le paramètre de chemin d’accès , vous spécifiez la chaîne et, si vous récupérez à nouveau la valeur à l’aide de GetTargetProperty, vous obtenez également la valeur sous forme de chaîne. Contrairement à d’autres implémentations de propriétés d’animation ciblant des concepts tels que Windows Presentation Foundation (WPF). Ces technologies XAML utilisent un type d’objet représentatif (objet PropertyPath discret) pour stocker les informations de chemin de propriété pour le ciblage d’animation, et la syntaxe des méthodes SetTargetProperty utilise le type PropertyPath. Windows Runtime possède également une classe PropertyPath ; toutefois, cette classe est utilisée uniquement pour la liaison de données, qui est un autre scénario pour les définitions de chemins de propriété. Windows Runtime ne prend pas en charge la modification d’un chemin de propriété dans un Storyboard après sa définition à l’aide de la chaîne, de sorte que son implémentation de Storyboard.TargetProperty accepte une chaîne. Cette distinction n’a même pas d’importance pour la syntaxe XAML et la prise en charge des propriétés jointes. Il s’agit uniquement de créer des storyboards dynamiques dans du code ou de modifier par programme les valeurs de storyboard après leur définition initiale en XAML. Si vous avez besoin de recibler une animation vers une autre propriété au moment de l’exécution, créez un storyboard entièrement nouveau avec la nouvelle chaîne de chemin de propriété, exécutez des animations avec le nouveau Storyboard et arrêtez d’utiliser le précédent.

S’applique à

Voir aussi