Язык

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.

Применяется к