EventTrigger Ellipse.MouseLeftButtonUp


   
     

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      HorizontalAlignment="Center" VerticalAlignment="Center">
        
        <Ellipse Name="myEllipse" Fill="Red" Height="100" Width="10">
          <Ellipse.Triggers>
            <EventTrigger RoutedEvent="Ellipse.MouseEnter">
              <BeginStoryboard Name="changeWidth">
                <Storyboard>
                  <DoubleAnimation Storyboard.TargetProperty="(Ellipse.Width)"
                                   To="300" Duration="0:0:5" />
                </Storyboard>
              </BeginStoryboard>
            </EventTrigger>
        
            <EventTrigger RoutedEvent="Ellipse.MouseLeftButtonUp">
              <ResumeStoryboard BeginStoryboardName="changeWidth" />
            </EventTrigger>
          </Ellipse.Triggers>
        </Ellipse>
</Page>

   
    
    
    
    
     


EventTrigger Ellipse.MouseLeftButtonDown


   
     

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      HorizontalAlignment="Center" VerticalAlignment="Center">
        
        <Ellipse Name="myEllipse" Fill="Red" Height="100" Width="10">
          <Ellipse.Triggers>
            <EventTrigger RoutedEvent="Ellipse.MouseEnter">
              <BeginStoryboard Name="changeWidth">
                <Storyboard>
                  <DoubleAnimation Storyboard.TargetProperty="(Ellipse.Width)"
                                   To="300" Duration="0:0:5" />
                </Storyboard>
              </BeginStoryboard>
            </EventTrigger>
        
            <EventTrigger RoutedEvent="Ellipse.MouseLeftButtonDown">
              <PauseStoryboard BeginStoryboardName="changeWidth" />
            </EventTrigger>
          </Ellipse.Triggers>
        </Ellipse>
</Page>

   
    
    
    
    
     


Pausing and resuming a storyboard with triggers


   
     
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      HorizontalAlignment="Center" VerticalAlignment="Center">
        
        <Ellipse Name="myEllipse" Fill="Red" Height="100" Width="10">
          <Ellipse.Triggers>
            <EventTrigger RoutedEvent="Ellipse.MouseEnter">
              <BeginStoryboard Name="changeWidth">
                <Storyboard>
                  <DoubleAnimation Storyboard.TargetProperty="(Ellipse.Width)"
                                   To="300" Duration="0:0:5" />
                </Storyboard>
              </BeginStoryboard>
            </EventTrigger>

          </Ellipse.Triggers>
        </Ellipse>
</Page>

   
    
    
    
    
     


Starting an animation with a trigger


   
     

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      HorizontalAlignment="Center" VerticalAlignment="Center">
        
        <Ellipse Name="myEllipse" Fill="Red" Height="100" Width="10">
          <Ellipse.Triggers>
            <EventTrigger RoutedEvent="Ellipse.MouseEnter">
              <BeginStoryboard>
                <Storyboard>
                  <DoubleAnimation Storyboard.TargetProperty="(Ellipse.Width)"
                                   To="300" Duration="0:0:5" />
                </Storyboard>
              </BeginStoryboard>
            </EventTrigger>
          </Ellipse.Triggers>
        </Ellipse>


</Page>

   
    
    
    
    
     


Style With MultiTrigger


   
     

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Window.Resources>
      <Style x:Key ="TextBoxStyle" TargetType = "{x:Type TextBox}">
        <Setter Property = "Foreground" Value = "Black"/>
        <Setter Property = "Background" Value = "LightGray"/>
        <Setter Property = "Height" Value = "30"/>
        <Setter Property = "Width" Value = "100"/>
          <Style.Triggers>
            <MultiTrigger>  
            <MultiTrigger.Conditions>
              <Condition Property = "IsFocused" Value = "True"/>
              <Condition Property = "IsMouseOver" Value = "True"/>
            </MultiTrigger.Conditions>
            <Setter Property = "Background" Value = "Yellow"/>                   
          </MultiTrigger>
        </Style.Triggers>
      </Style>
    </Window.Resources>


  <StackPanel >
    <TextBox Name = "txtOne" Style = "{StaticResource TextBoxStyle}" />    
    <TextBox Name = "txtTwo" Style = "{StaticResource TextBoxStyle}" />
    <TextBox Name = "txtThree" Style = "{StaticResource TextBoxStyle}" />
   </StackPanel>
</Window>

   
    
    
    
    
     


Use Triggers to Play Audio When a User Interacts with a Control


   
  
<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="WPF" Height="100" Width="300">
    <StackPanel>
        <MediaElement Name="meMediaElem" />
        <UniformGrid Height="70" Columns="2">
            <Button Content="Ding" MaxHeight="25" MaxWidth="70">
                <Button.Triggers>
                    <EventTrigger RoutedEvent="Button.Click">
                        <EventTrigger.Actions>
                            <BeginStoryboard>
                                <Storyboard>
                                    <MediaTimeline 
                                      Source="ding.wav" 
                                      Storyboard.TargetName="meMediaElem"/>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger.Actions>
                    </EventTrigger>
                </Button.Triggers>
            </Button>
            <Slider MaxHeight="25" MaxWidth="100" >
                <Slider.Triggers>
                    <EventTrigger RoutedEvent="Slider.ValueChanged">
                        <EventTrigger.Actions>
                            <BeginStoryboard>
                                <Storyboard>
                                    <MediaTimeline 
                                      Source="a.wav" 
                                      Storyboard.TargetName="meMediaElem" />
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger.Actions>
                    </EventTrigger>
                </Slider.Triggers>
            </Slider>
        </UniformGrid>
    </StackPanel>
</Window>

   
    
     


Use EventSetter to add mouse event handler


   
  


<Window x:Class="Styles.EventSetter"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="EventSetter" Height="300" Width="300">
  <Window.Resources>
    <Style x:Key="MouseOverHighlightStyle">
      <Setter Property="TextBlock.Padding" Value="5"/>
      <EventSetter Event="FrameworkElement.MouseEnter" Handler="element_MouseEnter" />
      <EventSetter Event="FrameworkElement.MouseLeave" Handler="element_MouseLeave" />
    </Style>
  </Window.Resources>
  
  <StackPanel>
    <TextBlock Style="{StaticResource MouseOverHighlightStyle}">Hover over me.</TextBlock>
    <TextBlock Padding="5">asdf</TextBlock>
    <TextBlock Style="{StaticResource MouseOverHighlightStyle}">Hover over me.</TextBlock>
  </StackPanel>
</Window>
//File:Window.xaml.cs

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;

namespace Styles
{
    public partial class EventSetter : System.Windows.Window
    {
        public EventSetter()
        {
            InitializeComponent();
        }
        private void element_MouseEnter(object sender, MouseEventArgs e)
        {
            ((TextBlock)sender).Background = new SolidColorBrush(Colors.LightGoldenrodYellow);
        }
        private void element_MouseLeave(object sender, MouseEventArgs e)
        {
            ((TextBlock)sender).Background = null;
        }
    }
}