Storyboard.SetTargetProperty(Timeline, String) Methode

Definition

Legt den Wert der angefügten XAML-Eigenschaft storyboard.TargetProperty für ein Zielelement fest.

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)

Parameter

element
Timeline

Das Zielelement, für das der Wert festgelegt werden soll.

path
String

Platform::String

winrt::hstring

Der Storyboard.TargetProperty-Wert des festzulegenden Zielelements. Dadurch wird ein Qualifikationspfad angegeben, der auf die Abhängigkeitseigenschaft abzielt, in der die Animation angewendet wird. Siehe Hinweise.

Hinweise

Die Verwendung von SetTargetProperty im Code im Gegensatz zu einer Animation in anfänglichen XAML-Definitionen ist selten. Es ist schwierig, alle Ziel- und Zeitsteuerungen in einer Animation richtig zu machen, insbesondere wenn Sie versuchen, Werte zu integrieren, die nur zur Laufzeit verfügbar sind. Es wird empfohlen, Ihre Animationen in XAML zu erstellen. Dies bedeutet, dass Sie die angefügte Storyboard.TargetProperty-Eigenschaft verwenden, nicht die SetTargetProperty-Runtimemethode (die XAML im Hintergrund unterstützt). Das Erstellen von Animationen im Code ist ein erweitertes Szenario. Hier sehen Sie ein sehr einfaches Codebeispiel für die Beteiligten:

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

Eigenschaftenpfade für die Ausrichtung auf Animationseigenschaften

Die angefügte Storyboard.TargetProperty-Eigenschaft wird in der Regel für die einzelnen zeitachsenbasierten Animationen festgelegt, aus denen die Storyboard.Children-Auflistung einer Animationsdefinition in XAML besteht.

Die Storyboard.TargetName-Eigenschaft kann eine Zeichenfolgensyntax verarbeiten, die das Ziel einer Untereigenschaft eines Eigenschaftswerts ermöglicht. Die Syntax verwendet eine "Punkt-nach-unten"-Metapher, um eine Kette von Objekt-Eigenschaftsbeziehungen anzusprechen, bis eine bestimmte Untereigenschaft identifiziert wird. Dadurch können Animationen auf die Werttypen angewendet werden, in denen eine unterstützende Animationsstruktur vorhanden ist (Double, Color, Point und Object for DiscreteObjectKeyFrameAnimation). Sie können beispielsweise den Background-Wert eines Steuerelements animieren, das den Objekttyp Brush annimmt. Es gibt keinen "BrushAnimation"-Animationstyp, sodass Sie eine Animation nicht direkt als Ziel für Hintergrund verwenden können. Stattdessen können Sie jedoch auf eine SolidColorBrush-Untereigenschaft mit dem Namen Color verweisen, die den Typ Color annimmt und daher von einer ColorAnimation als Ziel verwendet werden kann. Die Zeichenfolgensyntax hierfür lautet:

(Control.Background).(SolidColorBrush.Color)

Die Klammern um "(Control.Background)" informieren die Verarbeitung darüber, dass der zwischengeschaltete "Punkt" nicht "punktab" sein soll und stattdessen Teil des Qualifikationsnamens ist, der die eigenschaftstypqualifizierte Background-Eigenschaft für die Ausrichtung findet. Der folgende "Punkt" wird als "dot-down"-Anweisung behandelt, die eine Untereigenschaft des Pinseltyps anfordert. Das letzte Fragment "(SolidColorBrush.Color)" enthält erneut die Klammern, sodass der innere "Punkt" wieder als "ownertype.member "-Qualifikation verwendet wird, nicht als "Punkt nach unten".

Beachten Sie, dass für Untereigenschaftswerte ein Wertrückschluss möglich ist. Die folgende Zeichenfolge funktioniert beispielsweise nach Rückschluss, obwohl "Color" tatsächlich ein Wert der bestimmten Brush-UnterklasseSolidColorBrush ist:

(Control.Background).Color

Die Eigenschaftspfadspezifikation enthält viel mehr als diese. Diese Bemerkung soll Ihnen den Einstieg in die grundlegenden Targeting-Szenarien erleichtern. Weitere Informationen finden Sie unter Eigenschaftenpfadsyntax und Storyboardanimationen.

Migrationshinweise

Wenn Sie einen Pfadwert für den Pfadparameter angeben, geben Sie die Zeichenfolge an. Wenn Sie den Wert mithilfe von GetTargetProperty erneut abrufen, erhalten Sie den Wert auch als Zeichenfolge. Dies steht im Gegensatz zu einigen anderen Implementierungen von Animationseigenschaften, die auf Konzepte abzielen, z. B. Microsoft Silverlight und Windows Presentation Foundation (WPF). Diese XAML-Technologien verwenden einen repräsentativen Objekttyp (ein diskretes PropertyPath-Objekt ), um die Eigenschaftenpfadinformationen für die Animationszielrichtung zu speichern, und die Syntax für die SetTargetProperty-Methoden verwendet den PropertyPath-Typ . Die Windows-Runtime verfügt auch über eine PropertyPath-Klasse. Diese Klasse wird jedoch nur für die Datenbindung verwendet. Dies ist ein weiteres Szenario für Eigenschaftenpfaddefinitionen. Die Windows-Runtime unterstützt das Ändern eines Eigenschaftenpfads in einem Storyboard nicht, nachdem er mithilfe der Zeichenfolge definiert wurde. Daher nimmt die Implementierung von Storyboard.TargetProperty eine Zeichenfolge an. Diese Unterscheidung spielt keine Rolle für DIE XAML-Syntax und die Unterstützung angefügter Eigenschaften. Es ist nur wichtig, dynamische Storyboards im Code zu erstellen oder Storyboardwerte programmgesteuert zu ändern, nachdem sie ursprünglich in XAML definiert wurden. Wenn Sie eine Animation zur Laufzeit auf eine andere Eigenschaft umstellen müssen, erstellen Sie ein völlig neues Storyboard mit der neuen Eigenschaftenpfadzeichenfolge, führen Sie Animationen mit dem neuen Storyboard aus, und beenden Sie die Verwendung des vorherigen.

Gilt für:

Weitere Informationen