KeyTime Структура
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Указывает, когда должен происходить определенный ключевой кадр во время анимации.
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
struct KeyTime
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
public struct KeyTime
Public Structure KeyTime
<object property="[days.]hours:minutes:seconds[.fractionalSeconds]"/>
- Наследование
-
KeyTime
- Атрибуты
Примеры
В этом примере используется синтаксис атрибута XAML для задания значений KeyTime для нескольких типов классов DoubleAnimationUsingKeyFrames .
<Canvas>
<Canvas.Resources>
<Storyboard x:Name="myStoryboard">
<!-- Animate the TranslateTransform's X property
from 0 to 350, then 50, then 200 over 10 seconds. -->
<DoubleAnimationUsingKeyFrames
Storyboard.TargetName="MyAnimatedTranslateTransform"
Storyboard.TargetProperty="X"
Duration="0:0:10" EnableDependentAnimation="True">
<!-- Using a LinearDoubleKeyFrame, the rectangle moves
steadily from its starting position to 500 over
the first 3 seconds. -->
<LinearDoubleKeyFrame Value="500" KeyTime="0:0:3" />
<!-- Using a DiscreteDoubleKeyFrame, the rectangle suddenly
appears at 400 after the fourth second of the animation. -->
<DiscreteDoubleKeyFrame Value="400" KeyTime="0:0:4" />
<!-- Using a SplineDoubleKeyFrame, the rectangle moves
back to its starting point. The animation starts out slowly at
first and then speeds up. This KeyFrame ends after the 6th
second. -->
<SplineDoubleKeyFrame KeySpline="0.6,0.0 0.9,0.00" Value="0" KeyTime="0:0:6" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</Canvas.Resources>
<Rectangle PointerPressed="Pointer_Clicked" Fill="Blue"
Width="50" Height="50">
<Rectangle.RenderTransform>
<TranslateTransform x:Name="MyAnimatedTranslateTransform" />
</Rectangle.RenderTransform>
</Rectangle>
</Canvas>
// Start the animation when the object loads
private void Start_Animation(object sender, RoutedEventArgs e)
{
myStoryboard.Begin();
}
Комментарии
Свойство KeyTime каждого ключевого кадра указывает, когда заканчивается этот ключевой кадр. Он не указывает, сколько времени играет ключевой кадр. Время воспроизведения ключевых кадров определяется по окончании ключевого кадра, после окончания предыдущего ключевого кадра и длительности анимации.
Указание keyTime только целым числом без каких-либо литеральных символов диапазона времени, таких как : или . приведет к ключу этого числа дней! Это редко предполагаемый результат. Обычно указывается интервал времени в секундах. Таким образом, строка KeyTime обычно включает предыдущие нулевые значения в часах и минутах, а также литерал : как разделитель между часами, минутами и секундами. Например, чтобы указать keyTime 5 секунд, правильная строка имеет значение "0:0:5" ("0:0:05" эквивалентно).
Заметки о синтаксисе XAML
Вы не можете объявить KeyTime как общий объект в ResourceDictionary.
Проекция и члены KeyTime
Если вы используете язык Microsoft .NET (C#), то KeyTime имеет некоторые служебные методы, а его элемент TimeSpan предоставляется как свойство только для чтения, а не поле.
Для Microsoft .NET длительность предоставляет TimeSpan.Parse для его TimeSpan, метода FromTimeSpan и неявного оператора. Они недоступны в структуре на C++ и можно использовать KeyTimeHelper.FromTimeSpan.
Если вы программируете с помощью C++ с помощью библиотеки шаблонов среда выполнения Windows (WRL), то в качестве члена KeyTime существует только поле TimeSpan элемента данных. Код WRL может получить доступ к FromTimeSpan , так как он существует в классе KeyTimeHelper .
Поля
| Имя | Описание |
|---|---|
| TimeSpan |
Компонент времени этого keyTime. |