LinearPointKeyFrame Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
public ref class LinearPointKeyFrame sealed : PointKeyFrame
/// [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 LinearPointKeyFrame final : PointKeyFrame
[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 LinearPointKeyFrame : PointKeyFrame
Public NotInheritable Class LinearPointKeyFrame
Inherits PointKeyFrame
<LinearPointKeyFrame .../>
- Наследование
- Атрибуты
Примеры
Этот пример XAML перемещает многоточие вдоль треугольного пути. В примере используется класс PointAnimationUsingKeyFrames для анимации свойства CenterэллипсеGeometry. Эта анимация использует три ключевых кадра следующим образом:
- Во время первой половины секунды используется экземпляр класса LinearPointKeyFrame для перемещения многоточия вдоль пути с устойчивой скоростью от начальной позиции. Линейные ключевые кадры, такие как LinearPointKeyFrame, создают гладкую линейную интерполяцию между значениями.
- В конце следующей половины секунды используется экземпляр класса DiscretePointKeyFrame для внезапного перемещения многоточия вдоль пути к следующей позиции. Дискретные ключевые кадры, такие как DiscretePointKeyFrame , создают внезапные переходы между значениями.
- В течение последних двух секунд используется экземпляр класса SplinePointKeyFrame для перемещения многоточия обратно в начальную позицию. Ключевые кадры spline, такие как SplinePointKeyFrame , создают переменную перехода между значениями свойства KeySpline . В этом примере анимация начинается медленно и ускоряется экспоненциально к концу сегмента времени.
<Canvas Width="400" Height="300">
<Canvas.Resources>
<Storyboard x:Name="myStoryboard">
<!-- Animating the Center property uses 3 KeyFrames, which animate
the ellipse allong a triangular path. -->
<PointAnimationUsingKeyFrames
Storyboard.TargetProperty="Center"
Storyboard.TargetName="MyAnimatedEllipseGeometry"
Duration="0:0:5" RepeatBehavior="Forever" EnableDependentAnimation="True">
<!-- Over the first half second, Using a LinearPointKeyFrame, the ellipse
moves steadily from its starting position along the first line of the
trianglar path. -->
<LinearPointKeyFrame KeyTime="0:0:0.5" Value="100,300" />
<!-- Using a DiscretePointKeyFrame, the ellipse suddenly changes position
after the first second of the animation. -->
<DiscretePointKeyFrame KeyTime="0:0:1" Value="400,300" />
<!-- Using a SplinePointKeyFrame, the ellipse moves back to its starting
position. It moves slowly at first and then speeds up. This key frame
takes 2 seconds to complete. -->
<SplinePointKeyFrame KeySpline="0.6,0.0 0.9,0.00"
KeyTime="0:0:3" Value="200,100" />
</PointAnimationUsingKeyFrames>
</Storyboard>
</Canvas.Resources>
<Path Fill="Blue" Loaded="Start_Animation">
<Path.Data>
<!-- Describes an ellipse. -->
<EllipseGeometry x:Name="MyAnimatedEllipseGeometry"
Center="200,100" RadiusX="15" RadiusY="15" />
</Path.Data>
</Path>
</Canvas>
// Start the animation when the object loads
private void Start_Animation(object sender, RoutedEventArgs e)
{
myStoryboard.Begin();
}
Комментарии
Анимации с ключевым кадром позволяют достичь нескольких целевых значений, которые достигаются в точке вдоль временной шкалы анимации. Другими словами, каждый ключевой кадр может указать другое промежуточное значение, и достигнут последний ключевой кадр является окончательным значением анимации. Указав несколько значений для анимации, можно сделать более сложные анимации. Обычно у вас есть по крайней мере два ключевых кадра в pointAnimationUsingKeyFrames с LinearPointKeyFrame, в противном случае pointAnimation было бы проще.
Дополнительные сведения о том, как использовать анимацию с помощью ключевых кадров, см. в разделе "Анимация ключевых кадров" и анимации с упрощенной функцией.
Конструкторы
| Имя | Описание |
|---|---|
| LinearPointKeyFrame() |
Инициализирует новый экземпляр класса LinearPointKeyFrame . |
Свойства
| Имя | Описание |
|---|---|
| Dispatcher |
Всегда возвращается |
| DispatcherQueue |
Возвращает, |
| KeyTime |
Возвращает или задает время достижения целевого значения целевого кадра ключа. (Унаследовано от PointKeyFrame) |
| Value |
Возвращает или задает целевое значение целевого кадра ключа. (Унаследовано от PointKeyFrame) |
Методы
| Имя | Описание |
|---|---|
| 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) |