Duration Struct
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta la durata di tempo in cui una sequenza temporale è attiva o più in genere rappresenta una durata di tempo che supporta anche due valori Automatic speciali e 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" .../>
- Ereditarietà
-
Duration
- Attributi
Commenti
Per queste proprietà viene usato un Duration valore:
- Timeline.Duration (può essere impostato su uno Storyboard o un'animazione)
- VisualTransition.GeneratedDuration
- RepeatBehavior.Duration
- Windows. UI. Xaml.Controls.MediaElement.NaturalDuration (questo utilizzo non fa parte dello scenario di animazione con storyboard; tutti gli altri sono)
Per altre info su come usare come Duration parte di una sequenza temporale, inclusi esempi di codice, vedi Animazioni con storyboard o Timeline.Duration.
Utilizzo di XAML
Il modo più comune per usare un Duration valore nella Windows Runtime consiste nell'impostarlo usando un attributo XAML. Quando imposti un valore in XAML, stai fornendo una stringa e la stringa viene analizzata usando il formato stringa hours:minutes:seconds e le relative varianti, come descritto qui.
<object property="[days.]hours:minutes:seconds[.fractionalSeconds]"/>
- days: valore intero maggiore o uguale a 0 che specifica il numero di giorni.
- hours: valore intero compreso tra 0 e 23 che specifica il numero di ore. Se si specifica un valore Duration come attributo XAML, è necessario un componente ore, anche se è 0.
- minutes: valore intero compreso tra 0 e 59 che specifica il numero di minuti. Se si specifica un valore Duration come attributo XAML, è necessario un componente minuti, anche se è 0.
- seconds: valore intero compreso tra 0 e 59 che specifica il numero di secondi. Impostare i componenti hours:minutes come 0:0 se si imposta solo un componente secondi.
- fractionalSeconds: facoltativo. Valore decimale costituito da 1 a 7 posizioni oltre il separatore decimale, che specifica i secondi frazionari.
<object property="Automatic" .../>
-
Automatic: stringa
Automaticletterale .
<object property="Forever" .../>
-
Forever: stringa letterale
Forever.
Specificando una durata usando una stringa simile a un numero intero, senza caratteri letterali utilizzati nel formato stringa hours:minutes:seconds , ad esempio : o . genererà un valore Duration di quel numero di giorni. Questo è raramente il risultato previsto. In genere si specificano durate di animazione in secondi. Di conseguenza, la stringa Durata deve includere i valori 0 precedenti per ore e minuti, con valori letterali : caratteri come separatori tra ore e minuti e tra minuti e secondi. Ad esempio, per specificare una durata di cinque secondi, la stringa corretta per un valore di attributo XAML è "0:0:5" ("0:0:05" è equivalente).
Note sulla sintassi XAML
Nella grammatica illustrata nell'utilizzo degli attributi XAML [ ] (parentesi quadre) indica valori facoltativi, [ ] non sono valori letterali. I caratteri : (due punti) e . (punto) sono entrambi valori letterali e delimitano la forma stringa h:m:s di un intervallo di tempo comune o i valori facoltativi giorni e frazionariSecondi .
Usa le stringhe letterali "Automatic" e "Forever" come valori di attributo XAML se vuoi un valore duration con comportamento come documentato da Duration.Automatic e Duration.Forever.
Duration non supporta la sintassi di un elemento oggetto e non è possibile dichiarare duration come elemento condivisibile in un oggetto ResourceDictionary.
Utilizzo del codice
Se si usa un Duration oggetto nel codice, Duration viene usata una definizione di tempo usata anche dalla TimeSpan struttura . La TimeSpan struttura è rappresentata da System.TimeSpan se si esegue la programmazione con C# o Windows. Foundation.TimeSpan se si esegue la programmazione con C++.
- C# System.TimeSpan ha un metodo Parse che usa il formato stringa hours:minutes:seconds . Se è necessario creare un
Durationvalore nel codice, è possibile chiamare il costruttore Duration e fornire l'argomentoSystem.TimeSpanchiamando TimeSpan.Parse con una stringa hours:minutes:seconds . Usa sempre le impostazioni cultura "en-us" per l'analisi di questa stringa, perché questo è il modo in cui XAML interpreta il formato stringa e non dovresti usare input specifici delle impostazioni cultura per animare comunque i tempi. - Windows C++. Foundation.TimeSpan non supporta un modo per crearlo in formato stringa hours:minutes:seconds. Sarà necessario usare DurationHelper.FromTimeSpan ed eseguire manualmente la conversione per il modo in cui ore:minuti:secondi viene convertito nel Windows C++. Valore dei dati Foundation.TimeSpan, ovvero un valore in millisecondi.
Automatico e per sempre
Automatic e Forever sono valori che contengono un significato speciale per un valore della proprietà Duration. Per Microsoft .NET, queste sono rappresentate dalle proprietà statiche Automatic e Forever.
Il Automatic valore applicato in XAML o nel codice comporta un comportamento diverso in uno Storyboard anziché in un'animazione.
- Per Storyboard, il
Automaticvalore imposta l'intervallo di tempo effettivo uguale all'ora di fine dell'animazione figlio con esecuzione più lunga, in modo che non si verifichi alcun ritaglio per qualsiasi animazione figlio. - Per le animazioni, il
Automaticvalore restituisce il comportamento in base al quale l'animazione viene eseguita con un intervallo di tempo di 1 secondo (0:0:1). Questo comportamento è raramente auspicabile come risultato finale, ma consente di visualizzare l'animazione in esecuzione durante i test, prima di aver stabilito un intervallo di tempo finale.
Important
L'uso Forever di per un'animazione è un utilizzo deprecato e viene usato raramente. Ciò comporta un'animazione che non avanza mai dal valore iniziale, indipendentemente dai valori forniti per From/To, fotogrammi chiave e così via. Se vuoi che un'animazione si ripeta continuamente, usa RepeatBehavior="Forever", non Duration="Forever".
Proiezione e membri della durata
Se si usa C#, Duration dispone di membri non dati disponibili e i relativi membri dati vengono esposti come proprietà di lettura/scrittura, non come campi.
Duration espone diversi operatori, inclusi gli operatori di confronto. Vedere Duration (Durata) nel browser api di .NET.
Per Microsoft .NET, Duration espone TimeSpan.Parse per i relativi operatori TimeSpan, Implicit e UnaryPlus e Add e Subtract. Questi non sono disponibili dalla struttura in C++ ma è possibile usare metodi DurationHelper equivalenti per alcuni di questi.
Se si esegue la programmazione con C++/WinRT o la libreria di modelli C++ Windows Runtime (WRL), esistono solo i campi membro dati come membri di Duratione non è possibile usare i metodi di utilità o le proprietà della proiezione .NET. Il codice C++ può accedere a metodi di utilità simili esistenti nella classe DurationHelper . Ad esempio, è possibile chiamare DurationHelper.Compare per confrontare due valori C++ Duration . Per altre info, vedi DurationHelper.
Questa tabella mostra le proprietà e i metodi equivalenti disponibili in .NET e C++.
Campi
| Nome | Descrizione |
|---|---|
| TimeSpan |
Componente |
| Type |
Tipo come membro dell'enumerazione . |