Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Clock-Klasse

Erhält den Laufzeitzustand der zeitlichen Steuerung für eine Timeline.

Namespace:  System.Windows.Media.Animation
Assembly:  PresentationCore (in PresentationCore.dll)

public class Clock : DispatcherObject

Der Clock-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Geschützte MethodeClockInitialisiert eine neue Instanz der Clock-Klasse unter Verwendung der angegebenen Timeline als Vorlage. Das neue Clock-Objekt verfügt über keine untergeordneten Elemente.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftControllerRuft einen ClockController ab, mithilfe dessen diese Clock gestartet, angehalten, wieder aufgenommen, gesucht, übersprungen, beendet oder entfernt werden kann.
Öffentliche EigenschaftCurrentGlobalSpeedRuft die Geschwindigkeit ab, mit der die Zeit einer Uhr gegenwärtig fortschreitet, im Verhältnis zur Echtzeit.
Geschützte EigenschaftCurrentGlobalTimeRuft die aktuelle globale Zeit ab, wie vom WPF-Zeitsteuerungssystem eingerichtet. 
Öffentliche EigenschaftCurrentIterationRuft die aktuelle Iteration dieser Uhr ab.
Öffentliche EigenschaftCurrentProgressRuft den aktuellen Status dieser Clock innerhalb der aktuellen Iteration ab.
Öffentliche EigenschaftCurrentStateRuft einen Wert ab, der angibt, ob die Uhr derzeit Active, Filling oder Stopped ist.
Öffentliche EigenschaftCurrentTimeRuft die aktuelle Zeit dieser Uhr für die aktuelle Iteration ab.
Öffentliche EigenschaftDispatcherRuft den Dispatcher ab, der diesem DispatcherObject zugeordnet ist. (Von DispatcherObject geerbt.)
Öffentliche EigenschaftHasControllableRootRuft einen Wert ab, der angibt, ob diese Clock Teil einer steuerbaren Uhrenstruktur ist.
Öffentliche EigenschaftIsPausedRuft einen Wert ab, der angibt, ob diese Clock oder eines ihrer übergeordneten Elemente angehalten wurde.
Öffentliche EigenschaftNaturalDurationRuft die interne Dauer der Timeline dieser Uhr ab.
Öffentliche EigenschaftParentRuft die Uhr ab, die das übergeordnete Element dieser Uhr bildet.
Öffentliche EigenschaftTimelineRuft die Timeline ab, aus der diese Clock erstellt wurde.
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeCheckAccessBestimmt, ob der aufrufende Thread auf dieses DispatcherObject zugreifen kann. (Von DispatcherObject geerbt.)
Geschützte MethodeDiscontinuousTimeMovementWird stets beim Implementieren in einer abgeleiteten Klasse aufgerufen, wenn eine Uhr wiederholt, übersprungen oder gesucht wird.
Öffentliche MethodeEquals(Object)Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Von Object geerbt.)
Geschützte MethodeFinalize Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.)
Geschützte MethodeGetCanSlipGibt zurück, ob die Clock eine eigene externe Zeitquelle besitzt. In diesem Fall ist möglicherweise eine Synchronisierung mit dem Zeitsteuerungssystem erforderlich.
Geschützte MethodeGetCurrentTimeCoreRuft die aktuelle Zeit dieser Uhr für die aktuelle Iteration ab.
Öffentliche MethodeGetHashCodeFungiert als die Standardhashfunktion. (Von Object geerbt.)
Öffentliche MethodeGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Geschützte MethodeMemberwiseCloneErstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Geschützte MethodeSpeedChangedWird stets beim Implementieren in einer abgeleiteten Klasse aufgerufen, wenn eine Uhr gestartet, übersprungen, angehalten oder wieder aufgenommen oder wenn die SpeedRatio der Uhr bearbeitet wird.
Geschützte MethodeStoppedWird stets beim Implementieren in einer abgeleiteten Klasse aufgerufen, wenn eine Uhr mit der Stop-Methode beendet wird.
Öffentliche MethodeToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Öffentliche MethodeVerifyAccessErzwingt, dass der aufrufende Thread auf dieses DispatcherObject zugreifen kann. (Von DispatcherObject geerbt.)
Zum Seitenanfang

  NameBeschreibung
Öffentliches EreignisCompletedTritt auf, wenn das Ausführen dieser Uhr vollständig beendet wurde.
Öffentliches EreignisCurrentGlobalSpeedInvalidatedTritt auf, wenn die Geschwindigkeit der Uhr aktualisiert wird.
Öffentliches EreignisCurrentStateInvalidatedTritt auf, wenn CurrentState-Eigenschaft der Uhr aktualisiert wird.
Öffentliches EreignisCurrentTimeInvalidatedTritt auf, wenn die CurrentTime dieser Uhr ungültig wird.
Öffentliches EreignisRemoveRequestedTritt auf, wenn für diese Clock oder eine ihrer übergeordneten Uhren die Remove-Methode aufgerufen wird.
Zum Seitenanfang

Eine Timeline beschreibt an sich lediglich einen Zeitabschnitt. Die eigentliche Arbeit übernimmt das Clock-Objekt der Zeitachse: Es behält den zeitbezogenen Laufzeitzustand der Zeitachse bei.

In den meisten Fällen wird für die Zeitachse automatisch eine Uhr erstellt. Wenn Sie Animationen mit einem Storyboard oder der BeginAnimation-Methode ausführen, werden Uhren für die Zeitachsen und Animationen automatisch erstellt und auf die Zieleigenschaften angewendet. Beispiele zu diesem Thema finden Sie unter Gewusst wie: Animieren einer Eigenschaft unter Verwendung eines Storyboards und Gewusst wie: Animieren einer Eigenschaft ohne Storyboard.

Sie können eine Clock auch explizit mit der CreateClock-Methode erstellen. In ressourcenintensiven Szenarien, z. B. beim Animieren einer großen Anzahl ähnlicher Objekte, kann das Verwalten der eigenen Clock-Verwendung Leistungsvorteile bieten.

Uhren werden in Strukturen angeordnet, die der Struktur der Timeline-Objektstruktur, aus der sie erstellt werden, entsprechen. Die Stammuhr einer solchen Zeitstruktur kann durch Abrufen des entsprechenden Controller interaktiv gesteuert (angehalten, wieder aufgenommen, beendet usw.) werden. Andere Uhren als Stammuhren können nicht direkt gesteuert werden.

Wenn eine Uhr erstellt wurde, kann sie nicht mehr geändert (jedoch bearbeitet) werden.

Verwenden einer Zeitachse als Zeitgeber

Die Uhr einer Zeitachse läuft nur, wenn dieser ein Ereignishandler zugeordnet oder sie (im Falle eines AnimationClock-Objekts) einer Eigenschaft zugeordnet ist. Aus diesem Grund (und anderen Gründen) wird nicht empfohlen, eine Timeline als Zeitgeber zu verwenden.

Hinweise zur Vererbung

Abgeleitete Klassen müssen GetCurrentTimeCore implementieren, wenn geändert werden soll, wie die Zeit für diese Uhr vergeht. Durch Überschreiben der Methoden DiscontinuousTimeMovement, SpeedChanged und Stopped können abgeleitete Klassen für zusätzliche Funktionen festgelegt werden, wenn die Uhr die Zeitzählung oder einen Zeitabschnitt wiederholt, überspringt, sucht, startet, anhält, wieder aufnimmt oder beendet.

In diesem Beispiel wird die Verwendung von Clock-Objekten zum Animieren einer Eigenschaft dargestellt.

Es gibt drei Möglichkeiten, eine Abhängigkeitseigenschaft zu animieren:

Mit Storyboard-Objekten und der BeginAnimation-Methode können Sie Eigenschaften animieren, ohne Uhren direkt zu erstellen und zu verteilen (Beispiele finden Sie unter Gewusst wie: Animieren einer Eigenschaft unter Verwendung eines Storyboards und Gewusst wie: Animieren einer Eigenschaft ohne Storyboard). Die Uhren werden automatisch für Sie erstellt und verteilt.

Das folgende Beispiel zeigt, wie eine AnimationClock erstellt und auf zwei ähnliche Eigenschaften angewendet wird.


/*
    This example shows how to create and apply
    an AnimationClock.
*/

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Shapes;
using System.Windows.Media.Animation;


namespace Microsoft.Samples.Animation.TimingBehaviors
{
    public class AnimationClockExample : Page
    {

        ScaleTransform myScaleTransform;

        public AnimationClockExample()
        {

            this.WindowTitle = "Opacity Animation Example";
            this.Background = Brushes.White;
            StackPanel myStackPanel = new StackPanel();
            myStackPanel.Margin = new Thickness(20);

            // Create a button that with a ScaleTransform.
            // The ScaleTransform will animate when the
            // button is clicked.
            Button myButton = new Button();
            myButton.Margin = new Thickness(50);
            myButton.HorizontalAlignment = HorizontalAlignment.Left;
            myButton.Content = "Click Me";           
            myScaleTransform = new ScaleTransform(1,1);
            myButton.RenderTransform = myScaleTransform;


            // Associate an event handler with the
            // button's Click event.
            myButton.Click += new RoutedEventHandler(myButton_Clicked);

            myStackPanel.Children.Add(myButton);
            this.Content = myStackPanel;
        }

        // Create and apply and animation when the button is clicked.
        private void myButton_Clicked(object sender, RoutedEventArgs e)
        {

            // Create a DoubleAnimation to animate the
            // ScaleTransform.
            DoubleAnimation myAnimation = 
                new DoubleAnimation(
                    1, // "From" value
                    5, // "To" value 
                    new Duration(TimeSpan.FromSeconds(5))
                );
            myAnimation.AutoReverse = true;

            // Create a clock the for the animation.
            AnimationClock myClock = myAnimation.CreateClock();            

            // Associate the clock the ScaleX and
            // ScaleY properties of the button's
            // ScaleTransform.
            myScaleTransform.ApplyAnimationClock(
                ScaleTransform.ScaleXProperty, myClock);
            myScaleTransform.ApplyAnimationClock(
                ScaleTransform.ScaleYProperty, myClock);
        }
    }
}


Ein Beispiel, das veranschaulicht, wie eine Clock interaktiv gesteuert wird, nachdem sie gestartet wurde, finden Sie unter Gewusst wie: Interaktives Steuern einer Uhr.

.NET Framework

Unterstützt in: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle öffentlichen static (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2015 Microsoft