(0) exportieren Drucken
Alle erweitern

EventTrigger-Klasse

Aktualisiert: November 2007

Stellt einen Trigger dar, der einen Satz von Aktionen ausführt, sobald ein Ereignis eintritt.

Namespace:  System.Windows
Assembly:  PresentationFramework (in PresentationFramework.dll)
XMLNS für XAML: http://schemas.microsoft.com/winfx/xaml/presentation

[ContentPropertyAttribute("Actions")]
public class EventTrigger : TriggerBase, 
	IAddChild
/** @attribute ContentPropertyAttribute("Actions") */
public class EventTrigger extends TriggerBase implements IAddChild
public class EventTrigger extends TriggerBase implements IAddChild
<EventTrigger>
  Actions
</EventTrigger>

Trigger-Objekte verfügen über die Eigenschaften Setters, EnterActions und ExitActions, die basierend auf dem Zustand bestimmter Eigenschaften Änderungen oder Aktionen ausführen. EventTrigger-Objekte hingegen führen eine Reihe von Actions aus, sobald ein angegebenes Routingereignis eintritt. Zum Beispiel können Sie einen EventTrigger verwenden, um eine Reihe von Animationen zu starten, sobald sich der Mauszeiger über einem bestimmten Benutzeroberfläche (user interface, UI)-Steuerelement befindet. Im Gegensatz zu Trigger wird das Ende eines Zustands bei EventTrigger nicht registriert. Eine Aktion wird also nicht rückgängig gemacht, wenn der Zustand, der das Ereignis ausgelöst hat, beendet ist.

Beachten Sie, dass Sie beim Verwenden eines EventTrigger nur Ereignisse auswählen dürfen, die nicht mit dem internen Verhalten des betreffenden Steuerelements kollidieren. Steuerelemente wie Button oder TextBox führen spezifische Aktionen aus, wenn Benutzereingabeereignisse eintreten, wie z. B. Klicken mit einer der Maustasten oder Tastatureingaben. Wenn Sie beispielsweise versuchen, beim Entwurf einer Schalfläche das MouseDown-Ereignis als RoutedEvent für einen EventTrigger festzulegen, wird dieser EventTrigger niemals angewendet, da das Ereignis vorher von der Schaltfläche selbst behandelt wird. Verwenden Sie stattdessen das PreviewMouseDown-Ereignis oder ein anderes Ereignis.

Wenn Sie bei der Datenbindung das TargetUpdated-Ereignis verwenden, müssen Sie den NotifyOnTargetUpdated-Wert des Binding-Objekts auf true festlegen, damit das Ereignis ausgelöst wird.

Durch Hinzufügen eines untergeordneten TriggerAction-Elements zu einem EventTrigger-Objekt wird dieses implizit zur TriggerActionCollection des EventTrigger-Objekts hinzugefügt.

Das folgende Beispiel zeigt, wie Ereignistrigger in einem Stil zur Animation des MouseEnter-Ereignisses und des MouseLeave-Ereignisses eines FrameworkElement verwendet werden können. In diesem Beispiel wird für Style der TargetTypeRectangle festgelegt. Daher ist es nicht erforderlich, die Ereignisnamen MouseEnter und MouseLeave durch den Klassennamen zu qualifizieren.

<Style TargetType="Rectangle">
  <Setter Property="Width" Value="50" />
  <Setter Property="Height" Value="50" />
  <Setter Property="Margin" Value="20" />
  <Setter Property="HorizontalAlignment" Value="Left" />
  <Style.Triggers>
    <EventTrigger RoutedEvent="MouseEnter">
        <BeginStoryboard>
            <Storyboard>
              <DoubleAnimation To="300" Duration="0:0:1.5" 
                AccelerationRatio="0.10" DecelerationRatio="0.25" 
                Storyboard.TargetProperty="(Canvas.Width)" />
            </Storyboard>
        </BeginStoryboard>
    </EventTrigger>
    <EventTrigger RoutedEvent="MouseLeave">
        <BeginStoryboard>
            <Storyboard>
              <DoubleAnimation Duration="0:0:1.5" 
                AccelerationRatio="0.10" DecelerationRatio="0.25" 
                Storyboard.TargetProperty="(Canvas.Width)" />
            </Storyboard>
        </BeginStoryboard>
    </EventTrigger>
  </Style.Triggers>
</Style>


Das vollständige Beispiel finden Sie unter Beispiel für Ereignistrigger.

Weiterer Code

Gewusst wie: Verwenden von Ereignistriggern zum Steuern eines Storyboards nach dessen StartIn diesem Beispiel wird das Steuern eines Storyboard nach dessen Start veranschaulicht. Zum Starten eines Storyboard mithilfe von XAML verwenden Sie BeginStoryboard. Dies verteilt die Animationen an die zu animierenden Objekte und Eigenschaften und startet anschließend das Storyboard. Wenn Sie BeginStoryboard einen Namen geben, indem Sie die entsprechende Name-Eigenschaft festlegen, wird dieses Storyboard steuerbar. Sie können das Storyboard dann interaktiv steuern, nachdem es gestartet wurde.

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

Windows Vista

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft