Поделиться через


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 обычно содержит предыдущие нулевые значения для часов и минут, а также литерал : в качестве разделителя между часами, минутами и секундами. Например, чтобы указать значение KeyTime, равное пяти секундам, правильная строка — "0:0:5" ("0:0:05" эквивалентно).

Примечания по синтаксису XAML

Вы не можете объявить KeyTime в качестве объекта, доступного для общего доступа, в ResourceDictionary.

Проекция и члены KeyTime

Если вы используете язык Microsoft .NET (C# или Microsoft Visual Basic) или расширения компонентов Visual C++ (C++/CX), то KeyTime имеет некоторые служебные методы, а его элемент данных TimeSpan предоставляется в виде свойства только для чтения, а не поля.

Для Microsoft .NET Duration предоставляет TimeSpan.Parse для своего TimeSpan, метода FromTimeSpan и неявного оператора. Они недоступны из структуры в расширениях компонентов Visual C++ (C++/CX), но вы можете использовать KeyTimeHelper.FromTimeSpan.

Если вы программируете на C++ с помощью библиотеки шаблонов среда выполнения Windows (WRL), то в качестве элемента KeyTime существует только поле элемента данных TimeSpan. Код WRL может получить доступ к FromTimeSpan в том виде, в который он существует в классе KeyTimeHelper .

Поля

TimeSpan

Компонент времени этого keyTime.

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