Storyboard.SetTargetProperty(Timeline, String) Método

Definición

Establece el valor de la propiedad adjunta XAML Storyboard.TargetProperty para un elemento de destino.

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)

Parámetros

element
Timeline

Elemento de destino para el que se va a establecer el valor.

path
String

Platform::String

winrt::hstring

Valor Storyboard.TargetProperty del elemento de destino que se va a establecer. Esto especifica una ruta de acceso de calificación que tiene como destino la propiedad de dependencia en la que se aplica la animación. Vea la sección Comentarios.

Comentarios

El uso de SetTargetProperty en el código en lugar de tener como destino una animación en definiciones XAML iniciales es poco frecuente. Es complicado obtener todos los objetivos y corregir el tiempo en una animación, especialmente si está intentando incorporar valores que solo están disponibles en tiempo de ejecución. Te recomendamos que crees tus animaciones en XAML, lo que significa que usarás la propiedad adjunta Storyboard.TargetProperty , no el método en tiempo de ejecución SetTargetProperty (que admite el XAML en segundo plano). La creación de animaciones en el código es un escenario avanzado. Este es un ejemplo de código muy básico de lo que implica:

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

Rutas de acceso de propiedades para la segmentación de propiedades de animación

La propiedad adjunta Storyboard.TargetProperty se establece normalmente en las animaciones derivadas de la escala de tiempo individuales que componen la colección Storyboard.Children de una definición de animación en XAML.

La propiedad Storyboard.TargetName puede procesar una sintaxis de cadena que permite establecer como destino una subpropiedad de un valor de propiedad. La sintaxis usa una metáfora de "punto hacia abajo" para establecer como destino una cadena de relaciones de propiedad de objeto hasta que se identifica una subpropiedad determinada. Esto permite que las animaciones se apliquen a los tipos de valor en los que hay una estructura de animación auxiliar (Double, Color, Point y Object para DiscreteObjectKeyFrameAnimation). Por ejemplo, puede animar el valor Background de un Control, que toma un tipo de objeto Brush. No hay ningún tipo de animación "BrushAnimation", por lo que no se puede dirigir directamente a una animación para Background . Pero lo que puede hacer en su lugar es hacer referencia a una subpropiedad SolidColorBrush denominada Color, que toma el tipo Color y, por tanto, puede ser dirigida por un ColorAnimation. La sintaxis de cadena para esto es:

(Control.Background).(SolidColorBrush.Color)

Los paréntesis alrededor de "(Control.Background)" informan al procesamiento de que el "punto" intermedio no debe "puntear" y que forma parte del nombre de calificación que encuentra la propiedad Ownertype-qualified Background para el destino. La siguiente instrucción "dot" se trata como una instrucción "dot-down", que solicita una subpropiedad del tipo Brush . El fragmento final "(SolidColorBrush.Color)" incluye de nuevo los paréntesis para que el interior "punto" se use de nuevo como calificación ownertype.member , no como "punto abajo".

Tenga en cuenta que, para los valores de subpropiedad, puede haber alguna inferencia de valores. Por ejemplo, la siguiente cadena funciona por inferencia, aunque "Color" es realmente un valor de la subclase Brush particular SolidColorBrush:

(Control.Background).Color

Hay mucho más que la especificación de ruta de acceso de propiedad que esta. Este comentario está pensado para empezar a trabajar con los escenarios básicos de destino. Para obtener más información, consulta Sintaxis de ruta de propiedad y animaciones con guion gráfico.

Notas de migración

Al especificar un valor de ruta de acceso para el parámetro path , especifique la cadena y, si recupera el valor de nuevo mediante GetTargetProperty, también obtendrá el valor como una cadena. Esto contrasta con otras implementaciones de la propiedad de animación destinadas a conceptos como Microsoft Silverlight y Windows Presentation Foundation (WPF). Estas tecnologías XAML usan un tipo de objeto representativo (un objeto PropertyPath discreto) para almacenar la información de ruta de acceso de propiedad para el destino de animación y la sintaxis de los métodos SetTargetProperty usan el tipo PropertyPath . El Windows Runtime también tiene una clase PropertyPath; sin embargo, esa clase solo se usa para el enlace de datos, que es otro escenario para las definiciones de ruta de acceso de propiedad. El Windows Runtime no admite la modificación de una ruta de acceso de propiedad en un Guión gráfico después de definirla mediante la cadena, por lo que su implementación de Storyboard.TargetProperty toma una cadena. Esta distinción no importa ni siquiera para la sintaxis XAML y la compatibilidad con propiedades adjuntas. Solo es importante crear guiones gráficos dinámicos en el código o modificar mediante programación los valores del guión gráfico después de definirlos inicialmente en XAML. Si tienes que volver a establecer una animación en otra propiedad en tiempo de ejecución, crea un guión gráfico completamente nuevo con la nueva cadena de ruta de acceso de la propiedad, ejecuta animaciones con el nuevo Guión gráfico y deja de usar la anterior.

Se aplica a

Consulte también