Duration Structure
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 :
- Timeline.Duration (peut être défini sur un Storyboard ou une animation)
- VisualTransition.GeneratedDuration
- RepeatBehavior.Duration
- Windows.UI.Xaml.Controls.MediaElement.NaturalDuration (cette utilisation ne fait pas partie du scénario d’animation de table de montage séquentiel; toutes les autres sont)
Pour plus d’informations sur l’utilisation d’un Duration
dans le cadre d’une chronologie, y compris des exemples de code, consultez Animations storyboard ou Timeline.Duration.
Utilisation de XAML
La façon la plus courante d’utiliser une Duration
valeur dans le 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]"/>
- days : valeur entière supérieure ou égale à 0 qui spécifie le nombre de jours.
- hours : 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 hours est requis, même s’il est 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 est 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 ne définissez qu’un composant en secondes.
- fractionalSeconds : facultatif. Valeur décimale composée de 1 à 7 positions au-delà de la virgule décimale, qui spécifie des fractions de secondes.
<object property="Automatic" .../>
-
Automatique : chaîne
Automatic
littérale .
<object property="Forever" .../>
-
Forever : chaîne littérale
Forever
.
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 hours:minutes:seconds tel que : ou , entraîne une durée de ce nombre de jours ! Il s’agit rarement du résultat prévu. En règle générale, vous spécifiez des durées d’animation en secondes. Par conséquent, la chaîne Duration doit inclure les valeurs 0 précédentes pour les heures et les minutes, avec littéral : caractères comme 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:0:05 » est équivalent).
Remarques sur la syntaxe XAML
Dans la grammaire indiquée dans l’utilisation de l’attribut XAML, [ ] (crochets) indique des valeurs facultatives, [ ] ne sont pas des littéraux. Les caractères : (deux-points) et . (point) sont tous deux des littéraux et délimitent la forme de chaîne h:m:s d’un intervalle de temps commun, ou les valeurs facultatives days et fractionalSeconds .
Utilisez les chaînes littérales « Automatic » et « Forever » comme valeurs d’attribut XAML si vous souhaitez une durée dont le comportement est documenté par Duration.Automatic et Duration.Forever.
Duration ne prend pas en charge la syntaxe d’un élément 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
dans le code, utilise Duration
une définition de temps qui est également utilisée par la TimeSpan
structure. La TimeSpan
structure est représentée par System.TimeSpan si vous programmez en C# ou Microsoft Visual Basic, ou par Windows.Foundation.TimeSpan si vous programmez en C++.
- C# ou Microsoft Visual Basic 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’argumentSystem.TimeSpan
en appelant TimeSpan.Parse avec une chaîne hours:minutes:seconds . 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 des minutages. - Windows.Foundation.TimeSpan C++ ne prend pas en charge un moyen de le créer au format de chaîne hours:minutes:seconds. Vous devez utiliser DurationHelper.FromTimeSpan et effectuer la conversion vous-même pour déterminer la façon dont les heures:minutes:secondes se convertissent en valeur de données Windows.Foundation.TimeSpan C++, qui est une valeur en millisecondes.
Automatique et pour toujours
Automatic
et Forever
sont des valeurs qui ont 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 en XAML ou en code entraîne un comportement différent sur un Storyboard par rapport à une animation.
- Pour Storyboard, la
Automatic
valeur définit l’intervalle de temps effectif sur 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 par lequel l’animation s’exécute avec un intervalle de temps de 1 seconde (0:0:1). Ce comportement est rarement souhaitable comme résultat final, mais il vous permet de voir l’animation en cours d’exécution pendant le test, avant d’avoir établi un dernier intervalle de temps.
Important
L’utilisation Forever
d’une animation est une utilisation déconseillée et est rarement utilisée. Il en résulte une animation qui n’avance jamais par rapport à sa valeur de départ, quelles que soient les valeurs fournies pour From/To, les images clés, etc. Si vous souhaitez qu’une animation se répète en continu, utilisez RepeatBehavior="Forever"
, et non Duration="Forever"
.
Projection et membres de Duration
Si vous utilisez C#, Duration
des 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. Consultez Durée dans le navigateur d’API .NET.
Pour Microsoft .NET, Duration expose TimeSpan.Parse pour sa propriété TimeSpan , les opérateurs Implicit et UnaryPlus et les méthodes Add et Subtract . Celles-ci ne sont pas disponibles à partir de la structure dans les extensions de composant Visual C++ (C++/CX), 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++ Windows Runtime (WRL), seuls les champs membres de données existent en tant que membres de Duration
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++.
Champs
TimeSpan |
Composant |
Type |
Type en tant que membre de l’énumération. |