Click to Rate and Give Feedback
MSDN
MSDN Library
.NET Development
Silverlight
System.Windows
EventTrigger Class
Collapse All/Expand All Collapse All
.NET Framework Class Library for Silverlight
EventTrigger Class

Represents a trigger that applies a set of actions (animation storyboards) in response to an event.

System..::.Object
  System.Windows..::.DependencyObject
    System.Windows..::.TriggerBase
      System.Windows..::.EventTrigger

Namespace:  System.Windows
Assembly:  System.Windows (in System.Windows.dll)
Visual Basic (Declaration)
<ContentPropertyAttribute("Actions", True)> _
Public NotInheritable Class EventTrigger _
    Inherits TriggerBase
C#
[ContentPropertyAttribute("Actions", true)]
public sealed class EventTrigger : TriggerBase
XAML Object Element Usage
<EventTrigger>
  oneOrMoreBeginStoryboards
</EventTrigger>

XAML Values

oneOrMoreBeginStoryboards

One or more BeginStoryboard object elements. Object elements defined here become members of the TriggerActionCollection that is the value of the Actions property, if you use code to examine that collection at run time.

The EventTrigger type exposes the following members.

  NameDescription
Public methodSupported by Silverlight for Windows PhoneEventTriggerInitializes a new instance of the EventTrigger class.
Top
  NameDescription
Public propertySupported by Silverlight for Windows PhoneActionsGets the collection of BeginStoryboard objects that this EventTrigger maintains.
Public propertySupported by Silverlight for Windows PhoneDispatcherGets the Dispatcher this object is associated with. (Inherited from DependencyObject.)
Public propertySupported by Silverlight for Windows PhoneRoutedEventGets or sets the name of the event that initiates the trigger.
Top
  NameDescription
Public methodSupported by Silverlight for Windows PhoneCheckAccessDetermines whether the calling thread has access to this object. (Inherited from DependencyObject.)
Public methodSupported by Silverlight for Windows PhoneClearValueClears the local value of a dependency property. (Inherited from DependencyObject.)
Public methodSupported by Silverlight for Windows PhoneEquals(Object)Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected methodSupported by Silverlight for Windows PhoneFinalizeAllows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.)
Public methodSupported by Silverlight for Windows PhoneGetAnimationBaseValueReturns any base value established for a Silverlight dependency property, which would apply in cases where an animation is not active. (Inherited from DependencyObject.)
Public methodSupported by Silverlight for Windows PhoneGetHashCodeServes as a hash function for a particular type. (Inherited from Object.)
Public methodSupported by Silverlight for Windows PhoneGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodSupported by Silverlight for Windows PhoneGetValueReturns the current effective value of a dependency property from a DependencyObject. (Inherited from DependencyObject.)
Protected methodSupported by Silverlight for Windows PhoneMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodSupported by Silverlight for Windows PhoneReadLocalValueReturns the local value of a dependency property, if a local value is set. (Inherited from DependencyObject.)
Public methodSupported by Silverlight for Windows PhoneSetValueSets the local value of a dependency property on a DependencyObject. (Inherited from DependencyObject.)
Public methodSupported by Silverlight for Windows PhoneToStringReturns a string that represents the current object. (Inherited from Object.)
Top

EventTrigger and the object.Triggers property element usage on elements are supported by Silverlight, but using this technique is discouraged for current applications. EventTrigger can only support a triggering action for the Loaded event (you name the event in the EventTrigger..::.RoutedEvent property.) This makes an EventTrigger unsuitable for most run-time interactions. Instead of using EventTrigger and the Triggers property, consider one of the following two alternatives:

  • For animating properties on objects that are not controls, place the storyboard in the general Resources for a page or application. Then assign an event handler on the element where you would have placed "Triggers". The event handler, when responding to the relevant event, should retrieve the storyboard from the resource dictionary. You then call Begin on the retrieved Storyboard.

  • For animating properties on objects that are controls (derive from Control), use the VisualStateManager technique, and run the appropriate animations based on state of or inputs to the control by calling GoToState.

Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
EventTrigger Alternatives      bitxwise   |   Edit   |   Show History
I agree that VisualStateManager is definitely the preferred approach over EventTrigger (particularly for controls), but in the remarks this seems to be justified with the claim that EventTrigger's are "unsuitable for most run-time interactions" because "you name the event in the EventTrigger.RoutedEvent property." This seems a little misleading to me because it appears to be saying that it's ok to name a VisualState, but not an EventName; both are string values that can potentially change so why would the naming of one be preferred over the other? Granted, the justification was mentioned for non-controls/StoryBoard, but it's rare to use VisualStateManager without also using a StoryBoard. $0$0 $0 $0On another note, what if I have a property bound to my non-control object from my view model (i.e. IsSelected). To also toggle or set the view model's property and not just the object's animation, would I have to use two-way binding with a converter since EventTrigger is discouraged (to prevent strongly coupling my view with a view model in code behind)? Or if I start the StoryBoard using a Behavior, would I have to either bind the StoryBoard in the Behavior's instantiation or strongly couple some sort of reference to it (thus resulting in unfavored separation)?$0 $0$0 $0 $0I guess I'm trying to focus on what the best practice is for animating properties of an object that are bound to or affected by properties of, say, a view model, such that the set up of animation for the object's properties does not compromise the integrity of the property bindings. So if I want my object's property to be animated differently based on a property value of its data context, but want to allow user interaction to change the data context's property value, what's the best practice approach to accomplishing this (since EventTriggers and custom triggers are discouraged)?$0
Tags What's this?: Add a tag
Flag as ContentBug
Processing
© 2012 Microsoft. All rights reserved. Terms of Use | Trademarks | Privacy Statement
Page view tracker