次の方法で共有


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 文字列には、通常、時間と分の前に 0 の値が含まれます。リテラル 、時間、分、秒の間の区切り記号として含まれます。 たとえば、5 秒の 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 の場合、DurationTimeSpan、FromTimeSpan メソッド、および Implicit 演算子の TimeSpan.Parse を公開します。 これらは Visual C++ コンポーネント拡張機能 (C++/CX) の 構造体からは使用できませんが、 KeyTimeHelper.FromTimeSpan を使用できます。

Windows ランタイム テンプレート ライブラリ (WRL) を使用して C++ を使用してプログラミングする場合、データ メンバー フィールド TimeSpan のみが KeyTime のメンバーとして存在します。 WRL コードは、KeyTimeHelper クラスに存在する FromTimeSpan にアクセスできます。

フィールド

TimeSpan

この KeyTime の時間コンポーネント。

適用対象