Storyboard.SetTargetProperty(Timeline, String) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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. Dies gibt einen Qualifizierungspfad an, der auf die Abhängigkeitseigenschaft abzielt, in der die Animation angewendet wird. Siehe Hinweise.
Hinweise
Die Verwendung von SetTargetProperty im Code im Gegensatz zur 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-Laufzeitmethode (die xaml im Hintergrund unterstützt). Das Erstellen von Animationen im Code ist ein erweitertes Szenario. Im Folgenden finden 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 von Animationseigenschaften
Die angefügte Storyboard.TargetProperty-Eigenschaft wird in der Regel für die einzelnen von zeitachsen abgeleiteten 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 Untergeordneten Eigenschaft eines Eigenschaftswerts ermöglicht. Die Syntax verwendet eine "Punkt-nach-unten"-Metapher für die Ausrichtung auf eine Kette von Objekt-Eigenschaft-Beziehungen, 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). Beispielsweise können Sie den Background-Wert eines Steuerelements animieren, das den Objekttyp Brush verwendet. Es gibt keinen "BrushAnimation"-Animationstyp, sodass Sie eine Animation nicht direkt für Hintergrund als Ziel 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, dass der zwischengeschaltete "Punkt" nicht "punktab" sein soll, sondern Teil des Qualifikationsnamens ist, der die eigenschaftsberechtigte Background-Eigenschaft für die Zielbestimmung findet. Der folgende Punkt wird als "dot-down"-Anweisung behandelt, die eine Untereigenschaft des Pinseltyps anfordert. Das endgültige Fragment "(SolidColorBrush.Color)" enthält erneut die Klammern, sodass der innere "Punkt" wieder als ownertype.member-Qualifizierung verwendet wird, nicht als "dot-down".
Beachten Sie, dass bei Untereigenschaftenwerten einige Wertrückschlüsse vorliegen können. Die folgende Zeichenfolge funktioniert beispielsweise nach Rückschluss, obwohl "Color" tatsächlich ein Wert der bestimmten Brush-UnterklasseSolidColorBrush ist:
(Control.Background).Color
Die Spezifikation des Eigenschaftenpfads enthält noch viel mehr. Diese Bemerkung soll Ihnen den Einstieg in die grundlegenden Zielszenarien erleichtern. Weitere Informationen finden Sie unter Eigenschaftenpfadsyntax und Storyboardanimationen.
Migrationshinweise
Wenn Sie einen Pfadwert für den path-Parameter angeben, geben Sie die Zeichenfolge an, und 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 Animationseigenschaftenzielkonzepten, 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 Animationszielung 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 akzeptiert die Implementierung von Storyboard.TargetProperty eine Zeichenfolge. Diese Unterscheidung spielt für XAML-Syntax und die Unterstützung angefügter Eigenschaften keine Rolle. 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.