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


KeyTime Структура

Определение

Указывает, когда определенный опорный кадр должен быть отображен во время анимации.

/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
struct KeyTime
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
public struct KeyTime
Public Structure KeyTime
<object property="[days.]hours:minutes:seconds[.fractionalSeconds]"/>
Наследование
KeyTime
Атрибуты

Требования к Windows

Семейство устройств
Windows 10 (появилось в 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v1.0)

Примеры

В этом примере используется синтаксис атрибута 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();
}
' Start the animation when the object loads
Private Sub Start_Animation(ByVal sender As Object, ByVal e As EventArgs)
    myStoryboard.Begin()
End Sub

Комментарии

Свойство 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.

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