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. Если у вас есть необходимость перенацелить анимацию на другое свойство во время выполнения, создайте полностью новую раскадровки с новой строкой пути свойства, выполните анимации с помощью новой раскадровки и остановите использование предыдущей.