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 storyboarded ; tous les autres sont)
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
Durationvaleur dans le code, vous pouvez appeler le constructeur Duration et fournir l’argumentSystem.TimeSpanen 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
Automaticvaleur 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
Automaticvaleur 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++.
Champs
| Nom | Description |
|---|---|
| TimeSpan |
Composant |
| Type |
Type en tant que membre de l’énumération. |