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. Dadurch wird ein Qualifizierungspfad angegeben, der auf die Abhängigkeitseigenschaft ausgerichtet ist, in der die Animation angewendet wird. Weitere Informationen finden Sie in der "Anmerkungen".
Hinweise
Die Verwendung von SetTargetProperty im Code im Gegensatz zur Ausrichtung einer Animation in anfänglichen XAML-Definitionen ist selten. Es ist schwierig, alle Ziel- und Anzeigedauern in einer Animation zu korrigieren, 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 den XAML-Code hinter den Kulissen unterstützt). Das Erstellen von Animationen im Code ist ein erweitertes Szenario. Hier ist 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
Eigenschaftspfade für animationseigenschaftenadressierung
Die angefügte Storyboard.TargetProperty-Eigenschaft wird in der Regel für die einzelnen von der Zeitachse abgeleiteten Animationen festgelegt, aus denen die Storyboard.Children-Auflistung einer Animationsdefinition in XAML besteht.
Die Storyboard.TargetName-Eigenschaft kann eine Zeichenfolgensyntax verarbeiten, die eine Untereigenschaft eines Eigenschaftswerts ermöglicht. Die Syntax verwendet eine "Dot-down"-Metapher für die Ausrichtung auf eine Kette von Objekteigenschaftenbeziehungen, 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 z. B. den Hintergrundwert eines Steuerelements animieren, das einen Objekttyp von Brush verwendet. Es gibt keinen Animationstyp "BrushAnimation", sodass Sie keine Animation für "Background " direkt als Ziel festlegen können. Sie können aber stattdessen auf eine SolidColorBrush-Untereigenschaft verweisen, die den Namen "Color" hat, der den Typ "Color " annimmt und somit von einer ColorAnimation adressiert werden kann. Die Zeichenfolgensyntax hierfür lautet:
(Control.Background).(SolidColorBrush.Color)
Die Klammern um "(Control.Background)" informieren die Verarbeitung, dass der Zwischenpunkt nicht "punkt down" ist und stattdessen Teil des Qualifikationsnamens ist, der die eigenschaftsqualifizierte Hintergrundeigenschaft für die Zielbestimmung 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 Innenbereich "dot" erneut als "ownertype.member "-Qualifikation verwendet wird, nicht als "dot-down".
Beachten Sie, dass bei Untereigenschaftswerten eine Abweichung von Werten vorhanden sein kann. Die folgende Zeichenfolge funktioniert beispielsweise nach Rückschluss, obwohl "Color" tatsächlich ein Wert der bestimmten Brush-UnterklasseSolidColorBrush ist:
(Control.Background).Color
Es gibt viel mehr für die Spezifikation des Eigenschaftspfads als dies. Diese Anmerkung ist nur für die ersten Schritte mit den grundlegenden Zielgruppenadressierungsszenarien gedacht. Weitere Informationen finden Sie unter Property-Path-Syntax und Storyboardanimationen.
Migrationshinweise
Wenn Sie einen Pfadwert für den Pfadparameter angeben, geben Sie die Zeichenfolge an, und wenn Sie den Wert erneut mit GetTargetProperty abrufen, erhalten Sie auch den Wert als Zeichenfolge. Dies ist im Gegensatz zu einigen anderen Implementierungen von Animationseigenschaftszielkonzepten wie Windows Presentation Foundation (WPF). Diese XAML-Technologien verwenden einen repräsentativen Objekttyp (ein separates PropertyPath-Objekt ), um die Eigenschaftenpfadinformationen für die Animationsadressierung zu speichern, und die Syntax für die SetTargetProperty-Methoden verwenden den PropertyPath-Typ . Die Windows-Runtime verfügt auch über eine PropertyPath-Klasse . Diese Klasse wird jedoch nur für die Datenbindung verwendet, was ein weiteres Szenario für Eigenschaftspfaddefinitionen ist. Die Windows-Runtime unterstützt das Ändern eines Eigenschaftspfads in einem Storyboard nach der Definition mithilfe der Zeichenfolge nicht, sodass die Implementierung von Storyboard.TargetProperty eine Zeichenfolge verwendet. 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 Eigenschaftspfadzeichenfolge, führen Animationen mit dem neuen Storyboard aus, und beenden Sie die Verwendung der vorherigen.