ColorAnimation Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Анимирует значение свойства Color между двумя целевыми значениями с помощью линейной интерполяции в течение указанной длительности.
public ref class ColorAnimation sealed : Timeline
/// [Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class ColorAnimation final : Timeline
[Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class ColorAnimation : Timeline
Public NotInheritable Class ColorAnimation
Inherits Timeline
<ColorAnimation .../>
- Наследование
- Атрибуты
Примеры
В следующем примере показано, как использовать ColorAnimation для анимации цвета фона StackPanel.
<StackPanel x:Name="myStackPanel" Background="Red"
Loaded="Start_Animation">
<StackPanel.Resources>
<Storyboard x:Name="colorStoryboard">
<!-- Animate the background color of the canvas from red to green
over 4 seconds. -->
<ColorAnimation Storyboard.TargetName="myStackPanel"
Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)"
From="Red" To="Blue" Duration="0:0:4"/>
</Storyboard>
</StackPanel.Resources>
</StackPanel>
<StackPanel x:Name="myStackPanel" Background="Red"
Loaded="Start_Animation">
<StackPanel.Resources>
<Storyboard x:Name="colorStoryboard">
<ColorAnimationUsingKeyFrames Storyboard.TargetName="myStackPanel"
Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
<!-- Go from green to red in the first 2 seconds. LinearColorKeyFrame creates
a smooth, linear animation between values. -->
<LinearColorKeyFrame Value="Blue" KeyTime="00:00:02" />
<!-- In the next half second, go to yellow. DiscreteColorKeyFrame creates a
sudden jump between values. -->
<DiscreteColorKeyFrame Value="Yellow" KeyTime="00:00:2.5" />
<!-- In the final 2 seconds of the animation, go from yellow back to green. SplineColorKeyFrame
creates a variable transition between values depending on the KeySpline property. In this example,
the animation starts off slow but toward the end of the time segment, it speeds up exponentially.-->
<SplineColorKeyFrame Value="Green" KeyTime="00:00:4.5" KeySpline="0.6,0.0 0.9,0.00" />
</ColorAnimationUsingKeyFrames>
</Storyboard>
</StackPanel.Resources>
</StackPanel>
<StackPanel Loaded="Start_Animation">
<StackPanel.Resources>
<Storyboard x:Name="colorStoryboard">
<!-- Animate the background color of the canvas from red to green
over 4 seconds. -->
<ColorAnimation Storyboard.TargetName="mySolidColorBrush"
Storyboard.TargetProperty="Color" From="Red" To="Blue" Duration="0:0:4"/>
</Storyboard>
</StackPanel.Resources>
<StackPanel.Background>
<SolidColorBrush x:Name="mySolidColorBrush" Color="Red" />
</StackPanel.Background>
</StackPanel>
// Start the animation when the object loads.
private void Start_Animation(object sender, RoutedEventArgs e)
{
colorStoryboard.Begin();
}
Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)"
Кроме того, вы можете явно создать SolidColorBrush, назовите его и нацелите его свойство Color напрямую. В приведенном ниже примере показано, как создать ту же анимацию, что и предыдущая, за исключением использования прямого назначения свойств.
<StackPanel Loaded="Start_Animation">
<StackPanel.Resources>
<Storyboard x:Name="colorStoryboard">
<!-- Animate the background color of the canvas from red to green
over 4 seconds. -->
<ColorAnimation Storyboard.TargetName="mySolidColorBrush"
Storyboard.TargetProperty="Color" From="Red" To="Blue" Duration="0:0:4"/>
</Storyboard>
</StackPanel.Resources>
<StackPanel.Background>
<SolidColorBrush x:Name="mySolidColorBrush" Color="Red" />
</StackPanel.Background>
</StackPanel>
// Start the animation when the object loads.
private void Start_Animation(object sender, RoutedEventArgs e)
{
colorStoryboard.Begin();
}
Комментарии
Используйте ColorAnimation, чтобы анимировать значение свойства любого свойства зависимости, которое имеет тип Color.
Линейная интерполяция для цвета означает, что каждая из значений ARGB обрабатывается как байт, и интерполяция является просто математической операцией. Вы получаете лучшие результаты интерполяции цвета, если хотя бы один из компонентов RGB совпадает или близок к одному и тому же в начальном значении и конечном значении.
Обычно необходимо использовать непрямое назначение свойств, чтобы нацеливать под свойство другого объекта, которое является значением свойства в целевом объекте. Это связано с тем, что очень мало свойств, отображающих сведения о цвете в элементах пользовательского интерфейса, фактически имеют тип Color. Большинство из них вместо типа Brush. Чтобы использовать ColorAnimation для элементов пользовательского интерфейса, обычно используется свойство Color объекта SolidColorBrush , которое является значением вложенного свойства. Синтаксис для этого показан в примере XAML в разделе "Примеры". Дополнительные сведения о косвенном целевых свойствах и других концепциях раскадровки анимации см. в разделе "Раскадрованная анимация" или синтаксис пути свойств.
ColorAnimation обычно имеет по крайней мере один из наборов свойств From, By или To , но никогда не все три.
- Только из: Анимация выполняется из значения, указанного свойством From , к базовому значению анимируемого свойства.
- От и до: Анимация выполняется из значения, указанного свойством From , к значению, указанному свойством To .
- От и по: Анимация выполняется из значения, указанного свойством From , к значению, указанному суммой свойств From и By .
- Только для: Анимация выполняется из базового значения анимированного свойства или выходного значения предыдущей анимации в значение, указанное свойством To .
- Только: Анимация выполняется из базового значения свойства, анимируемого или предыдущего значения анимации, к сумме этого значения и значению, заданному свойством By .
Свойства From, By и To объекта ColorAnimation не являются строго цветом. Вместо этого они являются пустыми для цвета. Значение по умолчанию для этих значений равно NULL, а не неинициализированной структуре. Это значение NULL — это то, как система анимации различает, что вы не задали конкретное значение. C++ не имеет типа NULL , поэтому вместо этого используется IReference .
Конструкторы
| Имя | Описание |
|---|---|
| ColorAnimation() |
Инициализирует новый экземпляр класса ColorAnimation . |
Свойства
| Имя | Описание |
|---|---|
| AutoReverse |
Возвращает или задает значение, указывающее, воспроизводится ли временная шкала в обратном порядке после завершения итерации вперед. (Унаследовано от Timeline) |
| BeginTime |
Возвращает или задает время начала этой временной шкалы . (Унаследовано от Timeline) |
| By |
Возвращает или задает общую сумму, с помощью которой анимация изменяет начальное значение. |
| ByProperty |
Определяет свойство зависимостей By . |
| Dispatcher |
Всегда возвращается |
| DispatcherQueue |
Возвращает, |
| Duration |
Возвращает или задает продолжительность времени, в течение которого эта временная шкала воспроизводится, не подсчитывая повторения. (Унаследовано от Timeline) |
| EasingFunction |
Возвращает или задает функцию упрощения, примененную к этой анимации. |
| EasingFunctionProperty |
Определяет свойство зависимостей EasingFunction . |
| EnableDependentAnimation |
Возвращает или задает значение, указывающее, должны ли анимированные свойства, которые считаются зависимыми анимациями, использовать это объявление анимации. |
| EnableDependentAnimationProperty |
Определяет свойство зависимости EnableDependentAnimation . |
| FillBehavior |
Возвращает или задает значение, указывающее, как работает анимация после окончания его активного периода. (Унаследовано от Timeline) |
| From |
Возвращает или задает начальное значение анимации. |
| FromProperty |
Определяет свойство зависимостей From . |
| RepeatBehavior |
Возвращает или задает повторяющееся поведение этой временной шкалы. (Унаследовано от Timeline) |
| SpeedRatio |
Получает или задает частоту относительно родительского элемента, в течение которого выполняется для этой временной шкалы. (Унаследовано от Timeline) |
| To |
Возвращает или задает конечное значение анимации. |
| ToProperty |
Определяет свойство зависимостей To . |
Методы
| Имя | Описание |
|---|---|
| ClearValue(DependencyProperty) |
Очищает локальное значение свойства зависимостей. (Унаследовано от DependencyObject) |
| GetAnimationBaseValue(DependencyProperty) |
Возвращает любое базовое значение, установленное для свойства зависимостей, которое будет применяться в случаях, когда анимация не активна. (Унаследовано от DependencyObject) |
| GetValue(DependencyProperty) |
Возвращает текущее эффективное значение свойства зависимостей из DependencyObject. (Унаследовано от DependencyObject) |
| ReadLocalValue(DependencyProperty) |
Возвращает локальное значение свойства зависимостей, если задано локальное значение. (Унаследовано от DependencyObject) |
| RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Регистрирует функцию уведомлений для прослушивания изменений в определенном экземпляре DependencyProperty в этом экземпляре DependencyObject . (Унаследовано от DependencyObject) |
| SetValue(DependencyProperty, Object) |
Задает локальное значение свойства зависимостей в DependencyObject. (Унаследовано от DependencyObject) |
| UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Отменяет уведомление об изменении, которое ранее было зарегистрировано путем вызова RegisterPropertyChangedCallback. (Унаследовано от DependencyObject) |
События
| Имя | Описание |
|---|---|
| Completed |
Происходит при завершении воспроизведения объекта Storyboard . (Унаследовано от Timeline) |