Duration Struktur

Definition

Stellt die Dauer der Zeit dar, die eine Zeitachse aktiv ist, oder im Allgemeinen stellt eine Zeitdauer dar, die auch zwei spezielle Werte Automatic unterstützt.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" .../>
Vererbung
Duration
Attribute

Hinweise

Für diese Eigenschaften wird ein Duration Wert verwendet:

Weitere Informationen zur Verwendung als Duration Teil einer Zeitachse, einschließlich Codebeispielen, finden Sie unter Storyboardanimationen oder Timeline.Duration.

XAML-Verwendung

Die am häufigsten verwendete Methode zum Verwenden eines Duration Werts im Windows-Runtime besteht darin, ihn mithilfe eines XAML-Attributs festzulegen. Wenn Sie einen Wert in XAML festlegen, geben Sie eine Zeichenfolge an, und die Zeichenfolge wird mithilfe des Zeichenfolgenformats "hours:minutes:seconds " und deren Varianten analysiert, wie hier beschrieben.

<object property="[days.]hours:minutes:seconds[.fractionalSeconds]"/>
  • Tage: Ein ganzzahliger Wert größer oder gleich 0, der die Anzahl der Tage angibt.
  • Stunden: Ein ganzzahliger Wert zwischen 0 und 23, der die Anzahl der Stunden angibt. Wenn Sie ein Duration-Attribut als XAML-Attribut angeben, ist eine Stundenkomponente erforderlich, auch wenn sie 0 ist.
  • Minuten: Ein ganzzahliger Wert zwischen 0 und 59, der die Anzahl der Minuten angibt. Wenn Sie ein Duration-Attribut als XAML-Attribut angeben, ist eine Minutenkomponente erforderlich, auch wenn sie 0 ist.
  • Sekunden: Ein ganzzahliger Wert zwischen 0 und 59, der die Anzahl der Sekunden angibt. Legen Sie Stunden:Minuten-Komponenten als 0:0 fest, wenn Sie nur eine Sekundenkomponente festlegen.
  • fractionalSeconds: Optional. Ein Dezimalwert, der aus 1 bis 7 Positionen hinter dem Dezimalkomma besteht, wodurch Bruch sekunden angegeben werden.
<object property="Automatic" .../>
  • Automatisch: Die Literalzeichenfolge Automatic.
<object property="Forever" .../>
  • Forever: Die Literalzeichenfolge Forever.

Angeben einer Dauer mithilfe einer Zeichenfolge, die einer ganzen Zahl ähnelt, ohne literale Zeichen, die im Zeichenfolgenformat stunden:minuten:sekunden verwendet werden, z. B. : oder . führt zu einer Dauer dieser Anzahl von Tagen! Dies ist selten das beabsichtigte Ergebnis. In der Regel geben Sie animationsdauern in Sekunden an. Daher muss die Zeichenfolge "Dauer" 0 Werte für Stunden und Minuten mit Literal : Zeichen als Trennzeichen zwischen Stunden und Minuten sowie zwischen Minuten und Sekunden enthalten. Um beispielsweise eine Dauer von fünf Sekunden anzugeben, lautet die richtige Zeichenfolge für einen XAML-Attributwert "0:0:5" ("0:0:05" entspricht).

Hinweise zur XAML-Syntax

In der Grammatik, die in der XAML-Attributverwendung gezeigt wird, gibt [ ] (eckige Klammern) optionale Werte an, die [ ] sind keine Literale. Die Zeichen : (Doppelpunkt) und . (Punkt) sind beide Literale und trennen die Zeichenfolgenform h:m:s einer gemeinsamen Zeitspanne oder die optionalen Tage - und FractionalSeconds-Werte .

Verwenden Sie die Literalzeichenfolgen "Automatic" und "Forever" als XAML-Attributwerte, wenn sie ein Verhalten wie "Duration.Automatic " und "Duration.Forever" angeben möchten.

Die Dauer unterstützt keine Objektelementsyntax, und Sie können eine Dauer nicht als freigabefähiges Element in einem ResourceDictionary deklarieren.

Codeverwendung

Wenn Sie einen Duration Code verwenden, verwendet eine Duration Definition der Zeit, die auch von der TimeSpan Struktur verwendet wird. Die TimeSpan Struktur wird durch System.TimeSpan dargestellt, wenn Sie C# oder Windows programmieren. Foundation.TimeSpan, wenn Sie C++ programmieren.

  • Der C# -System.TimeSpan verfügt über eine Parse-Methode , die das Zeichenfolgenformat "hours:minutes:seconds " verwendet. Wenn Sie einen Duration Wert im Code erstellen müssen, können Sie den Duration-Konstruktor aufrufen und das System.TimeSpan Argument durch Aufrufen von TimeSpan.Parse mit einer Zeichenfolge "hours:minutes:seconds " bereitstellen. Verwenden Sie immer die Kultur "en-us" zum Analysieren dieser Zeichenfolge, da XAML das Zeichenfolgenformat interpretiert, und Sie sollten keine kulturspezifischen Eingaben zum Animieren von Anzeigedauern verwenden.
  • Die C++-Windows. Foundation.TimeSpan unterstützt keine Möglichkeit zum Erstellen in einem Zeichenfolgenformat "hours:minutes:seconds". Sie müssen DurationHelper.FromTimeSpan verwenden und die Konvertierung selbst ausführen, um zu erfahren, wie Stunden:Minuten:Sekunden in die C++-Windows konvertiert werden. Foundation.TimeSpan-Datenwert, bei dem es sich um einen Wert in Millisekunden handelt.

Automatisch und für immer

Automatic und Forever sind Werte, die eine besondere Bedeutung für einen Duration-Eigenschaftswert enthalten. Für Microsoft .NET werden diese durch die statischen Eigenschaften Automatic und Forever dargestellt.

Der Automatic in XAML oder Code angewendete Wert führt im Gegensatz zu einer Animation zu einem anderen Verhalten in einem Storyboard .

  • Für Storyboard legt der Automatic Wert den effektiven Zeitraum so fest, dass er der Endzeit seiner längst ausgeführten untergeordneten Animation entspricht, sodass für untergeordnete Animationen kein Clipping auftritt.
  • Bei Animationen führt der Automatic Wert zum Verhalten, bei dem die Animation mit einer Zeitspanne von 1 Sekunde (0:0:1) ausgeführt wird. Dieses Verhalten ist selten als Endergebnis wünschenswert, ermöglicht es Ihnen jedoch, die ausgeführte Animation während des Tests anzuzeigen, bevor Sie eine letzte Zeitspanne eingerichtet haben.

Important

Die Verwendung Forever für eine Animation ist eine veraltete Verwendung und wird selten verwendet. Dies führt zu einer Animation, die niemals vom Startwert wechselt, unabhängig davon, welche Werte für From To/, Keyframes usw. bereitgestellt wurden. Wenn eine Animation fortlaufend wiederholt werden soll, verwenden Sie RepeatBehavior="Forever"nicht Duration="Forever".

Projektion und Elemente der Dauer

Wenn Sie C# verwenden, Duration sind keine Datenmmber verfügbar, und die Datenmmber werden als Eigenschaften mit Lese-/Schreibzugriff verfügbar gemacht, nicht als Felder. Duration macht mehrere Operatoren verfügbar, einschließlich Vergleichsoperatoren. Siehe "Dauer" im .NET-API-Browser.

Für Microsoft .NET macht Duration TimeSpan.Parse für die TimeSpan-Eigenschaft, implizite und UnaryPlus-Operatoren und Add- und Subtract-Methoden verfügbar. Diese sind in der Struktur in C++ nicht verfügbar, Sie können jedoch entsprechende DurationHelper-Methoden für einige dieser Methoden verwenden.

Wenn Sie mit C++/WinRT oder der Windows-Runtime C++-Vorlagenbibliothek (WRL) programmieren, sind nur die Datenmemberfelder als Member Durationvorhanden, und Sie können die Hilfsmethoden oder Eigenschaften der .NET Projektion nicht verwenden. C++-Code kann auf ähnliche Hilfsmethoden zugreifen, die in der DurationHelper-Klasse vorhanden sind. Sie können beispielsweise DurationHelper.Compare aufrufen, um zwei C++ Duration -Werte zu vergleichen. Weitere Informationen finden Sie unter DurationHelper.

Diese Tabelle enthält die entsprechenden Eigenschaften und Methoden, die in .NET und C++ verfügbar sind.

.NET (Dauer) C++ (DurationHelper)
Duration(TimeSpan) FromTimeSpan(TimeSpan)
Automatisch Automatisch
Ewig Ewig
HasTimeSpan GetHasTimeSpan(Duration)
Add(Duration) Add(Duration, Duration)
Compare(Duration, Duration) Compare(Duration, Duration)
entspricht Equals(Duration, Duration)
Subtrahieren(Dauer) Subtrahieren(Dauer; Dauer)

Felder

Name Beschreibung
TimeSpan

Die TimeSpan Wertkomponente.

Type

Der Typ als Element der Enumeration.

Gilt für:

Weitere Informationen