Here is my XAML:
<Window x:Class="WpfApplication4.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="844.025" Width="678" MouseUp="somethingClicked"> <Grid MouseUp="somethingClicked"> <StackPanel MouseUp="somethingClicked" Margin="0,0,10,0"> <Button x:Name="btnClickMe" Content="Click Me!" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75" Margin="101,22,0,0" MouseUp="somethingClicked"/> <CheckBox x:Name="chkhandle" Content="CheckBox" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="241,28,0,0" RenderTransformOrigin="-0.588,1.188"/> <ListBox x:Name="lstEvents" HorizontalAlignment="Left" Height="604" VerticalAlignment="Top" Width="416" Margin="29,66,0,0"/> </StackPanel> </Grid>
And here is the C # code:
namespace WpfApplication4 { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { protected int eventCounter = 0; public MainWindow() { InitializeComponent(); } 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; lstEvents.Items.Add(message); e.Handled = (bool) chkhandle.IsChecked; if (e.Handled) lstEvents.Items.Add("Completed"); } }
}
I have the following problems with this example: 1) The MouseUp event does not fire when a button is clicked. 2) The event does not bubble. By clicking on any form, you will see:
Sender:WpfApplication4.MainWindow: Source:WpfApplication4.MainWindow: Original Source: System.Windows.Controls.Border.
If I understand correctly when the button is clicked, it must first run at the window level (what it is doing now), then Grid, then it folds and finally the text label. Is the code wrong or is my understanding of the concept wrong?
source share