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