Storyboard.SetTargetProperty(Timeline, String) Metodo

Definizione

Imposta il valore della proprietà associata XAML Storyboard.TargetProperty per un elemento di destinazione.

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)

Parametri

element
Timeline

Elemento di destinazione per il quale impostare il valore.

path
String

Platform::String

winrt::hstring

Valore Storyboard.TargetProperty dell'elemento di destinazione da impostare. Specifica un percorso di qualificazione destinato alla proprietà di dipendenza in cui si applica l'animazione. Vedere la sezione Osservazioni.

Commenti

L'uso di SetTargetProperty nel codice anziché la destinazione di un'animazione nelle definizioni XAML iniziali è rara. È difficile ottenere tutte le destinazioni e la tempistica corrette in un'animazione, in particolare se si tenta di incorporare valori disponibili solo in fase di esecuzione. Ti consigliamo di creare le animazioni in XAML, il che significa che userai la proprietà associata Storyboard.TargetProperty , non il metodo di runtime SetTargetProperty (che supporta XAML dietro le quinte). La creazione di animazioni nel codice è uno scenario avanzato. Ecco un esempio di codice molto semplice delle operazioni coinvolte:

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

Percorsi delle proprietà per la destinazione delle proprietà di animazione

La proprietà associata Storyboard.TargetProperty viene in genere impostata sulle singole animazioni derivate dalla sequenza temporale che costituiscono l'insieme Storyboard.Children di una definizione di animazione in XAML.

La proprietà Storyboard.TargetName può elaborare una sintassi di stringa che consente la destinazione di una sottoproprietà di un valore di proprietà. La sintassi usa una metafora "dot-down" per definire come destinazione una catena di relazioni tra proprietà oggetto fino a quando non viene identificata una determinata sottoproprietà. In questo modo le animazioni possono essere applicate ai tipi valore in cui è presente una struttura di animazione di supporto (Double, Color, Point e Object per DiscreteObjectKeyFrameAnimation). Ad esempio, potresti voler animare il valore Background di un controllo, che accetta un tipo di oggetto Brush. Non esiste alcun tipo di animazione "BrushAnimation", quindi non è possibile impostare direttamente come destinazione un'animazione per Background . Ma ciò che puoi fare invece è fare riferimento a una sottoproprietà SolidColorBrush denominata Color, che accetta il tipo Color e può quindi essere destinata a un ColorAnimation. La sintassi di stringa per questo è:

(Control.Background).(SolidColorBrush.Color)

Le parentesi intorno a "(Control.Background)" informano l'elaborazione che il "punto" intermedio non deve "punto verso il basso" e fa parte del nome di qualificazione che trova la proprietà Background qualificata per il tipo di proprietario per la destinazione. Il "punto" seguente viene considerato come un'istruzione "dot-down", che richiede una sottoproprietà del tipo Brush . Il frammento finale "(SolidColorBrush.Color)" include di nuovo le parentesi in modo che il "punto" interno venga nuovamente usato come qualifica ownertype.member , non come "dot-down".

Si noti che per i valori di sottoproprietà, può essere presente un'inferenza di valore. Ad esempio, la stringa seguente funziona per inferenza anche se "Color" è effettivamente un valore della sottoclasse Brushparticolare SolidColorBrush:

(Control.Background).Color

C'è molto di più per specificare il percorso delle proprietà rispetto a questo. Questa osservazione è destinata solo a iniziare a usare gli scenari di destinazione di base. Per altre info, vedi Sintassi del percorso delle proprietà e animazioni con storyboard.

Note sulla migrazione

Quando si specifica un valore di percorso per il parametro path , si specifica la stringa e, se si recupera nuovamente il valore usando GetTargetProperty, si ottiene anche il valore come stringa. Questo comportamento è diverso da altre implementazioni di proprietà di animazione destinate a concetti come Microsoft Silverlight e Windows Presentation Foundation (WPF). Queste tecnologie XAML usano un tipo di oggetto rappresentativo (un oggetto PropertyPath discreto) per archiviare le informazioni sul percorso delle proprietà per la destinazione dell'animazione e la sintassi per i metodi SetTargetProperty usa il tipo PropertyPath . Il Windows Runtime dispone anche di una classe PropertyPath, ma tale classe viene usata solo per il data binding, che è un altro scenario per le definizioni di percorso delle proprietà. Il Windows Runtime non supporta la modifica di un percorso di proprietà in uno Storyboard dopo che è stato definito usando la stringa, quindi l'implementazione di Storyboard.TargetProperty accetta una stringa. Questa distinzione non è rilevante anche per la sintassi XAML e il supporto delle proprietà associate. È importante solo per la creazione di storyboard dinamici nel codice o per la modifica a livello di codice dei valori dello storyboard dopo che sono stati definiti inizialmente in XAML. Se è necessario ridestinare un'animazione in una proprietà diversa in fase di esecuzione, creare uno Storyboard completamente nuovo con la nuova stringa del percorso della proprietà, eseguire animazioni con il nuovo storyboard e interrompere l'uso di quello precedente.

Si applica a

Vedi anche