KeyTime 结构
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
指定动画播放期间特定关键帧应在何时出现。
/// [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 属性语法在多种类型的 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();
}
' 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 指定为 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 的时间部分。 |