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 и By: Анимация переходит от значения, заданного свойством From , до значения, заданного суммой свойств From и By .
- Только для: Анимация выполняется из базового значения анимированного свойства или выходного значения предыдущей анимации до значения, указанного свойством To .
- Только по: Анимация выполняется от базового значения анимируемого свойства или выходного значения предыдущей анимации до суммы этого значения и значения, указанного свойством By .
Свойства From, By и To объекта ColorAnimation не являются строго цветом. Вместо этого они являются значениями, допускаемыми значением NULL для параметра Color. Значение по умолчанию для них равно NULL, а не не инициализированной структуре. Это значение NULL — это то, как система анимации различает, что вы не задали конкретное значение. Расширения (C++/CX) компонента Visual C++ не имеют типа Nullable, поэтому взамен используется 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) |