Поделиться через


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

Определение

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

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 может обрабатывать строковый синтаксис, который позволяет использовать подпродачу значение свойства. Синтаксис использует метафору "dot-down" для цепочки связей свойств объекта до тех пор, пока не будет определена определенная подпродажа. Это позволяет анимациям применяться к типам значений, в которых существует поддерживаемая структура анимации (Double, Color, Point и Object for DiscreteObjectKeyFrameAnimation). Например, может потребоваться анимировать значение Фонаэлемента управления, которое принимает тип объекта Brush. Нет типа анимации BrushAnimation, поэтому вы не можете напрямую нацелить анимацию на фон . Но то, что можно сделать вместо этого, является ссылка на подпропастерию SolidColorBrush , которая называется Color, которая принимает тип Color и, таким образом, может быть нацелена на ColorAnimation. Для этого используется строковый синтаксис:

(Control.Background).(SolidColorBrush.Color)

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

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

(Control.Background).Color

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

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

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

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

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