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