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 属性语法在多种类型的 DoubleAnimationUsingKeyFrames 类上设置 KeyTime 值。

<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 指定为 5 秒,则正确的字符串为“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、FromTimeSpan 方法和隐式运算符的 TimeSpan.Parse Visual C++ 组件扩展中的 结构 (C++/CX) 但可以使用 KeyTimeHelper.FromTimeSpan

如果使用 Windows 运行时 模板库 (WRL) 使用 C++ 进行编程,则只有数据成员字段 TimeSpan 作为 KeyTime 的成员存在。 WRL 代码可以访问 FromTimeSpan ,因为它存在于 KeyTimeHelper 类上。

字段

TimeSpan

此 KeyTime 的时间部分。

适用于