Langage

Duration Structure

Définition

Représente la durée pendant laquelle une chronologie est active, ou plus généralement représente une durée de temps qui prend également en charge deux valeurs Automatic spéciales et Forever.

/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
struct Duration
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
public struct Duration
Public Structure Duration
<object property="[days.]hours:minutes:seconds[.fractionalSeconds]"/>
-or-
<object property="Automatic" .../>
-or-
<object property="Forever" .../>
Héritage
Duration
Attributs

Remarques

Une Duration valeur est utilisée pour ces propriétés :

Pour plus d’informations sur l’utilisation d’une Durationchronologie, y compris des exemples de code, consultez animations storyboarded ou Timeline.Duration.

Utilisation XAML

La façon la plus courante d’utiliser une Duration valeur dans l’Windows Runtime consiste à la définir à l’aide d’un attribut XAML. Lorsque vous définissez une valeur en XAML, vous fournissez une chaîne et la chaîne est analysée à l’aide du format de chaîne hours :minutes :seconds et de ses variantes, comme décrit ici.

<object property="[days.]hours:minutes:seconds[.fractionalSeconds]"/>
  • jours : valeur entière supérieure ou égale à 0 qui spécifie le nombre de jours.
  • heures : valeur entière comprise entre 0 et 23 qui spécifie le nombre d’heures. Si vous spécifiez une durée en tant qu’attribut XAML, un composant d’heures est requis, même s’il s’agit de 0.
  • minutes : valeur entière comprise entre 0 et 59 qui spécifie le nombre de minutes. Si vous spécifiez une durée en tant qu’attribut XAML, un composant minutes est requis, même s’il s’agit de 0.
  • secondes : valeur entière comprise entre 0 et 59 qui spécifie le nombre de secondes. Définissez les composants hours :minutes sur 0:0 si vous définissez seulement un composant en secondes.
  • fractionalSeconds : facultatif. Valeur décimale composée de 1 à 7 positions au-delà du point décimal, qui spécifie des fractions de seconde.
<object property="Automatic" .../>
  • Automatique : chaîne Automaticlittérale .
<object property="Forever" .../>
  • Forever : La chaîne Foreverlittérale .

La spécification d’une durée à l’aide d’une chaîne qui ressemble à un entier, sans caractères littéraux utilisés dans le format de chaîne heures :minutes :secondes comme : ou . entraîne une durée de ce nombre de jours ! Il s’agit rarement du résultat prévu. En général, vous spécifiez des durées d’animation en secondes. Par conséquent, la chaîne Durée doit inclure les 0 valeurs précédentes pendant les heures et les minutes, avec le littéral : caractères en tant que séparateurs entre heures et minutes, et entre minutes et secondes. Par exemple, pour spécifier une durée de cinq secondes, la chaîne correcte pour une valeur d’attribut XAML est « 0:0:5 » (« 0:0:05 » est équivalente).

Remarques sur la syntaxe XAML

Dans la grammaire indiquée dans l’utilisation de l’attribut XAML, [ ] (crochets) indique les valeurs facultatives, les [ ] ne sont pas des littéraux. Les caractères : (deux-points) et . (point) sont à la fois des littéraux et délimitent la forme de chaîne h :m :s d’un intervalle de temps commun, ou les valeursfacultatives jours et fractionnairesSeconds .

Utilisez les chaînes littérales « Automatic » et « Forever » comme valeurs d’attribut XAML si vous souhaitez avoir un comportement documenté par Duration.Automatic et Duration.Forever.

Duration ne prend pas en charge une syntaxe d’élément d’objet et vous ne pouvez pas déclarer une durée en tant qu’élément partageable dans un ResourceDictionary.

Utilisation du code

Si vous utilisez un Duration code, une Duration définition de temps est également utilisée par la TimeSpan structure. La TimeSpan structure est représentée par System.TimeSpan si vous programmez en C#, ou Windows. Foundation.TimeSpan si vous programmez à l’aide de C++.

  • C# System.TimeSpan a une méthode Parse qui utilise le format de chaîne hours :minutes :seconds . Si vous devez créer une Duration valeur dans le code, vous pouvez appeler le constructeur Duration et fournir l’argument System.TimeSpan en appelant TimeSpan.Parse avec une chaîne heures :minutes :secondes . Utilisez toujours la culture «en-us» pour analyser cette chaîne, car c’est ainsi que XAML interprète le format de chaîne et vous ne devez pas utiliser d’entrées spécifiques à la culture pour animer les minutages.
  • Windows C++. Foundation.TimeSpan ne prend pas en charge un moyen de le créer au format de chaîne heures :minutes :secondes. Vous devez utiliser DurationHelper.FromTimeSpan et effectuer la conversion vous-même pour savoir comment les heures :minutes :secondes sont converties en Windows C++. Valeur de données Foundation.TimeSpan, qui est une valeur en millisecondes.

Automatique et toujours

Automatic et Forever sont des valeurs qui contiennent une signification spéciale pour une valeur de propriété Duration. Pour Microsoft .NET, celles-ci sont représentées par les propriétés statiques Automatic et Forever.

La Automatic valeur appliquée dans XAML ou dans le code entraîne un comportement différent sur un Storyboard par opposition à une animation.

  • Pour storyboard, la Automatic valeur définit l’intervalle de temps effectif pour qu’il soit égal à l’heure de fin de son animation enfant la plus longue, de sorte qu’aucune capture ne se produit pour une animation enfant.
  • Pour les animations, la Automatic valeur entraîne le comportement dans lequel l’animation s’exécute avec une plage de temps de 1 seconde (0:0:1). Ce comportement est rarement souhaitable en tant que résultat final, mais il vous permet de voir l’animation en cours d’exécution pendant les tests, avant d’avoir établi un intervalle de temps final.

Important

L’utilisation Forever d’une animation est une utilisation déconseillée et est rarement utilisée. Cela entraîne une animation qui n’avance jamais à partir de sa valeur de départ, quelles que soient les valeurs fournies pour From/To, les images clés, et ainsi de suite. Si vous souhaitez qu’une animation se répète en continu, utilisez RepeatBehavior="Forever", et non Duration="Forever".

Projection et membres de durée

Si vous utilisez C#, Duration les membres non-données sont disponibles et ses membres de données sont exposés en tant que propriétés en lecture-écriture, et non en tant que champs. Duration expose plusieurs opérateurs, y compris les opérateurs de comparaison. Voir Durée dans le navigateur d’API .NET.

Pour Microsoft .NET, Duration expose TimeSpan.Parse pour sa propriété TimeSpan, les opérateurs Implicite et UnaryPlus, ainsi que les méthodes Add et Subtract. Celles-ci ne sont pas disponibles à partir de la structure en C++, mais vous pouvez utiliser des méthodes DurationHelper équivalentes pour certaines d’entre elles.

Si vous programmez avec C++/WinRT ou la bibliothèque de modèles C++ (WRL) Windows Runtime, seuls les champs membres de Durationdonnées existent en tant que membres et vous ne pouvez pas utiliser les méthodes ou propriétés utilitaires de la projection .NET. Le code C++ peut accéder à des méthodes utilitaires similaires qui existent sur la classe DurationHelper . Par exemple, vous pouvez appeler DurationHelper.Compare pour comparer deux valeurs C++ Duration . Pour plus d’informations, consultez DurationHelper.

Ce tableau présente les propriétés et méthodes équivalentes disponibles dans .NET et C++.

.NET (durée) C++ (DurationHelper)
Duration(TimeSpan) FromTimeSpan(TimeSpan)
Automatique Automatique
Toujours Toujours
HasTimeSpan GetHasTimeSpan(Duration)
Add(Duration) Add(Duration, Duration)
Compare(Duration, Duration) Compare(Duration, Duration)
Égal Equals(Duration, Duration)
Soustraction(Durée) Soustraction(Durée, Durée)

Champs

Nom Description
TimeSpan

Composant TimeSpan valeur.

Type

Type en tant que membre de l’énumération.

S’applique à

Voir aussi