Mega Code Archive

 
Categories / C# / WPF
 

Event sender, event source and event original source

<Window x:Class="RoutedEvents.BubbledLabelClick"     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"     Title="BubbledLabelClick" Height="360" Width="330" MouseUp="SomethingClicked" >     <StackPanel MouseUp="SomethingClicked">       <Label Margin="5" BorderThickness="1" MouseUp="SomethingClicked" HorizontalAlignment="Left" >         <StackPanel MouseUp="SomethingClicked" >           <TextBlock Margin="3" MouseUp="SomethingClicked">label</TextBlock>           <Image Source="c:\image.jpg" Stretch="None" MouseUp="SomethingClicked" />           <TextBlock Margin="3" MouseUp="SomethingClicked">test</TextBlock>         </StackPanel>       </Label>       <ListBox Margin="5" Name="lstMessages" Grid.Row="1"></ListBox>       <CheckBox Margin="5" Name="chkHandle">Handle first event</CheckBox>       <Button Click="cmdClear_Click" HorizontalAlignment="Right" Margin="5" Padding="3">Clear List</Button>     </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 RoutedEvents {     public partial class BubbledLabelClick : System.Windows.Window     {         public BubbledLabelClick()         {             InitializeComponent();         }         protected int eventCounter = 0;         private void SomethingClicked(object sender, RoutedEventArgs e)         {                         eventCounter++;             string message = "#" + eventCounter.ToString() + ":\r\n" +                  " Sender: " + sender.ToString() + "\r\n" +                 " Source: " + e.Source + "\r\n" +                 " Original Source: " + e.OriginalSource;             lstMessages.Items.Add(message);             e.Handled = (bool)chkHandle.IsChecked;                     }         private void cmdClear_Click(object sender, RoutedEventArgs e)         {                         eventCounter = 0;             lstMessages.Items.Clear();         }     } }