Storyboard.SetTargetProperty(Timeline, String) Метод

Определение

Задает значение присоединенного свойства XAML Storyboard.TargetProperty для целевого элемента.

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)

Параметры

element
Timeline

Целевой элемент, для которого устанавливается значение.

path
String

Platform::String

winrt::hstring

Значение Storyboard.TargetProperty задаемого целевого элемента. Указывает путь квалификатору, предназначенный для свойства зависимостей, к которому применяется анимация. См. заметки.

Комментарии

Использование SetTargetProperty в коде в отличие от нацеливания на анимацию в начальных определениях XAML редко. Сложно получить все целевые значения и время в анимации, особенно если вы пытаетесь включить значения, доступные только во время выполнения. Рекомендуется создавать анимации в XAML. Это означает, что вы будете использовать присоединенное свойство Storyboard.TargetProperty , а не метод среды выполнения SetTargetProperty (который поддерживает XAML в фоновом режиме). Создание анимаций в коде — это сложный сценарий. Ниже приведен простой пример кода, который включает в себя:

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

Пути к свойствам для нацеливания на свойства анимации

Присоединенное свойство Storyboard.TargetProperty обычно задается для отдельных анимаций, производных от временной шкалы, которые составляют коллекцию Storyboard.Children определения анимации в XAML.

Свойство Storyboard.TargetName может обрабатывать синтаксис строки, который позволяет нацеливание на подсвойство значения свойства. В синтаксисе используется метафора "точка вниз" для нацеливания на цепочку связей "объект-свойство", пока не будет определено определенное подсвойство. Это позволяет применять анимации к типам значений, в которых имеется поддерживающая структура анимации (Double, Color, Point и Object для DiscreteObjectKeyFrameAnimation). Например, может потребоваться анимировать значение Backgroundэлемента управления, которое принимает тип объекта Brush. Тип анимации BrushAnimation отсутствует, поэтому вы не можете напрямую ориентироваться на анимацию для фона . Но вместо этого можно ссылаться на подсвойство SolidColorBrush с именем Color, которое принимает тип Color и, таким образом, может быть нацелено на ColorAnimation. Для этого используется следующий строковый синтаксис:

(Control.Background).(SolidColorBrush.Color)

Круглые скобки вокруг "(Control.Background)" сообщают обработке, что промежуточная "точка" не должна "точка вниз" и является частью имени квалификации, которое находит свойство Background с указанием типа владельца для нацеливания. Следующая точка рассматривается как инструкция dot-down, которая запрашивает подсвойство типа Brush . Окончательный фрагмент "(SolidColorBrush.Color)" снова включает круглые скобки, чтобы внутренняя точка снова использовалась в качестве квалификации ownertype.member , а не "точка вниз".

Обратите внимание, что для значений вложенных свойств может существовать некоторый вывод значений. Например, следующая строка работает путем вывода, хотя "Color" фактически является значением определенного подкласса BrushSolidColorBrush:

(Control.Background).Color

Спецификация пути свойства имеет гораздо большее значение, чем эта. Это замечание предназначено для того, чтобы вы начали работу с основными сценариями нацеливания. Дополнительные сведения см. в разделах Синтаксис пути к свойству и Раскадровка анимации.

Примечания о переходе

При указании значения пути для параметра path указывается строка, а если вы снова получите значение с помощью GetTargetProperty, вы также получите значение в виде строки. Это отличается от некоторых других реализаций концепций, ориентированных на свойства анимации, таких как Microsoft Silverlight и Windows Presentation Foundation (WPF). Эти технологии XAML используют репрезентативный тип объекта (дискретный объект PropertyPath ) для хранения сведений о пути к свойству для нацеливания анимации, а синтаксис для методов SetTargetProperty использует тип PropertyPath . У среда выполнения Windows также есть класс PropertyPath, однако этот класс используется только для привязки данных, что является другим сценарием для определений пути к свойствам. Среда выполнения Windows не поддерживает изменение пути к свойству в раскадровки после определения с помощью строки, поэтому его реализация Storyboard.TargetProperty принимает строку. Это различие даже не имеет значения для поддержки синтаксиса XAML и присоединенных свойств. Это важно только для создания динамических раскадровки в коде или программного изменения значений раскадровки после их первоначального определения в XAML. Если вам нужно перенацелить анимацию на другое свойство во время выполнения, создайте совершенно новую раскадровки с новой строкой пути к свойству, запустите анимацию с помощью новой раскадровки и прекратите использовать предыдущую.

Применяется к

См. также раздел