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. |