-api-id | -api-type |
---|---|
T:Microsoft.UI.Xaml.EventTrigger |
winrt class |
Represents a trigger that applies a set of actions (animation storyboards) in response to an event. Not commonly used. See Remarks.
<EventTrigger>
oneOrMoreBeginStoryboards
</EventTrigger>
Triggers, EventTrigger, Actions and BeginStoryboard are not commonly used. These API mainly exist for compatibility in XAML originally used for Microsoft Silverlight. For most scenarios where event triggers were used previously, do one of these:
- Use built-in animations from the animation library. See Animations in XAML.
- For events in control templates, use visual states and VisualStateManager. See XAML Control templates.
- For app-specific UI animations, define a Loaded handler on the page. This handler can reference a Storyboard that's defined in page-level resources, and call the Begin method on that Storyboard. See Storyboarded animations.
If you do choose to use Triggers, in Windows Runtime XAML, the default behavior for event triggers and the only event that can be used to invoke an EventTrigger is FrameworkElement.Loaded. Because that's both the default and the only enabled behavior, don't set the RoutedEvent attribute. Just use the XAML <EventTrigger>
. If you set RoutedEvent explicitly (not recommended), the only XAML that works is <EventTrigger RoutedEvent="FrameworkElement.Loaded">
. Unqualified "Loaded", or any other value, throws a parse exception. For more info, see Triggers.
This XAML example shows the basic structure for using FrameworkElement.Triggers with its default FrameworkElement.Loaded trigger behavior to run a storyboarded animation. This XAML shows the EventTrigger and BeginStoryboard container elements in proper relationship with each using their XAML content property syntax and unnecessary property element tags omitted.
<Canvas Width="200" Height="200" x:Name="animatedcanvas" Background="Red">
<Canvas.Triggers>
<EventTrigger>
<BeginStoryboard>
<Storyboard x:Name="ColorStoryboard">
<!-- Animate the background of the canvas to green over 4 seconds. -->
<ColorAnimation Storyboard.TargetName="animatedcanvas"
Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)"
To="Green" Duration="0:0:4"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Canvas.Triggers>
</Canvas>