Mega Code Archive

 
Categories / C# / WPF
 

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;         }     } }