Share via


Storyboard.SetTargetProperty(Timeline, String) Método

Definição

Define o valor da propriedade anexada Storyboard.TargetProperty XAML para um 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

O elemento de destino para o qual definir o valor.

path
String

Platform::String

winrt::hstring

O valor Storyboard.TargetProperty do elemento de destino a ser definido. Isso especifica um caminho de qualificação direcionado à propriedade de dependência em que a animação se aplica. Consulte Observações.

Comentários

O uso de SetTargetProperty no código em vez de direcionar uma animação em definições XAML iniciais é raro. É complicado obter todo o direcionamento e o tempo corretos em uma animação, especialmente se você estiver tentando incorporar valores que só estão disponíveis em tempo de execução. Recomendamos que você crie suas animações em XAML, o que significa que você usará a propriedade anexada Storyboard.TargetProperty , não o método de runtime SetTargetProperty (que dá suporte ao XAML nos bastidores). A criação de animações no código é um cenário avançado. Aqui está um exemplo de código muito básico do que está envolvido:

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

Caminhos de propriedade para direcionamento de propriedade de animação

A propriedade anexada Storyboard.TargetProperty normalmente é definida nas animações derivadas da Linha do Tempo individuais que compõem a coleção Storyboard.Children de uma definição de animação em XAML.

A propriedade Storyboard.TargetName pode processar uma sintaxe de cadeia de caracteres que permite direcionar uma subpropriedade de um valor de propriedade. A sintaxe usa uma metáfora de "ponto para baixo" para direcionar uma cadeia de relações objeto-propriedade até que uma subpropriedade específica seja identificada. Isso permite que as animações se apliquem aos tipos de valor em que há uma estrutura de animação de suporte (Double, Color, Point e Object for DiscreteObjectKeyFrameAnimation). Por exemplo, talvez você queira animar o valor background de um Control, que usa um tipo de objeto brush. Não há nenhum tipo de animação "BrushAnimation", portanto, você não pode direcionar diretamente uma animação para Background . Mas o que você pode fazer em vez disso é referenciar uma subpropriedade SolidColorBrush chamada Color, que usa o tipo Cor e, portanto, pode ser direcionada por uma ColorAnimation. A sintaxe da cadeia de caracteres para isso é:

(Control.Background).(SolidColorBrush.Color)

Os parênteses em torno de "(Control.Background)" informam ao processamento que o "ponto" intermediário não deve "ponto para baixo" e, em vez disso, faz parte do nome de qualificação que localiza a propriedade Background qualificada por ownertype para direcionamento. O "ponto" a seguir é tratado como uma instrução "ponto para baixo", que solicita uma subpropriedade do tipo Brush . O fragmento final "(SolidColorBrush.Color)" inclui novamente os parênteses para que o "ponto" interior seja novamente usado como qualificação ownertype.member , não como um "ponto para baixo".

Observe que, para valores de subpropriedade, pode haver alguma inferência de valor. Por exemplo, a cadeia de caracteres a seguir funciona por inferência, embora "Color" seja, na verdade, um valor da subclasse brush específica SolidColorBrush:

(Control.Background).Color

Há muito mais na especificação do caminho da propriedade do que isso. Esta observação destina-se apenas a começar a usar os cenários básicos de direcionamento. Para obter mais informações, consulte Sintaxe de caminho de propriedade e animações storyboarded.

Notas de migração

Quando você especifica um valor de caminho para o parâmetro path , especifica a cadeia de caracteres e, se recuperar o valor novamente usando GetTargetProperty, também obterá o valor como uma cadeia de caracteres. Isso contrasta com algumas outras implementações de conceitos de direcionamento de propriedade de animação, como o Microsoft Silverlight e o WPF (Windows Presentation Foundation). Essas tecnologias XAML usam um tipo de objeto representativo (um objeto PropertyPath discreto) para armazenar as informações de caminho de propriedade para direcionamento de animação e a sintaxe para os métodos SetTargetProperty usam o tipo PropertyPath . O Windows Runtime também tem uma classe PropertyPath; no entanto, essa classe é usada apenas para associação de dados, que é outro cenário para definições de caminho de propriedade. O Windows Runtime não dá suporte à modificação de um caminho de propriedade em um Storyboard depois de definido usando a cadeia de caracteres, portanto, sua implementação de Storyboard.TargetProperty usa uma cadeia de caracteres. Essa distinção nem importa a sintaxe XAML e o suporte à propriedade anexada. Ele só importa para criar storyboards dinâmicos em código ou modificar programaticamente valores de storyboard depois que eles são definidos inicialmente em XAML. Se você precisar redirecionar uma animação para uma propriedade diferente em tempo de execução, crie um Storyboard totalmente novo com a nova cadeia de caracteres de caminho de propriedade, execute animações com o novo Storyboard e pare de usar o anterior.

Aplica-se a

Confira também