Halting event routing with Handled
<Window x:Class="WpfApplication1.HaltingEvents"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Halting Events" Height="300" Width="300">
<Grid HorizontalAlignment="Center" VerticalAlignment="Center">
<Button PreviewMouseDown="PreviewMouseDownButton"
MouseDown="MouseDownButton">
<Grid PreviewMouseDown="PreviewMouseDownGrid"
MouseDown="MouseDownGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Canvas PreviewMouseDown="PreviewMouseDownCanvas"
MouseDown="ButtonDownCanvas"
Width="20" Height="18" VerticalAlignment="Center">
<Ellipse PreviewMouseDown="PreviewMouseDownEllipse"
MouseDown="MouseDownEllipse"
x:Name="myEllipse"
Canvas.Left="1" Canvas.Top="1" Width="16" Height="16"
Fill="Yellow" Stroke="Black" />
<Ellipse Canvas.Left="4.5" Canvas.Top="5" Width="2.5" Height="3"
Fill="Black" />
<Ellipse Canvas.Left="11" Canvas.Top="5" Width="2.5" Height="3"
Fill="Black" />
<Path Data="M 5,10 A 3,3 0 0 0 13,10" Stroke="Black" />
</Canvas>
<TextBlock Grid.Column="1">Click!</TextBlock>
</Grid>
</Button>
</Grid>
</Window>
//File:Window.xaml.vb
Imports System
Imports System.Windows
Imports System.Diagnostics
Namespace WpfApplication1
Public Partial Class HaltingEvents
Inherits System.Windows.Window
Public Sub New()
InitializeComponent()
End Sub
Private Sub ButtonDownCanvas(sender As Object, e As RoutedEventArgs)
Debug.WriteLine("ButtonDownCanvas")
e.Handled = True
End Sub
Private Sub PreviewMouseDownButton(sender As Object, e As RoutedEventArgs)
Debug.WriteLine("PreviewMouseDownButton")
End Sub
Private Sub MouseDownButton(sender As Object, e As RoutedEventArgs)
Debug.WriteLine("MouseDownButton")
End Sub
Private Sub PreviewMouseDownGrid(sender As Object, e As RoutedEventArgs)
Debug.WriteLine("PreviewMouseDownGrid")
End Sub
Private Sub MouseDownGrid(sender As Object, e As RoutedEventArgs)
Debug.WriteLine("MouseDownGrid")
End Sub
Private Sub PreviewMouseDownCanvas(sender As Object, e As RoutedEventArgs)
Debug.WriteLine("PreviewMouseDownCanvas")
End Sub
Private Sub PreviewMouseDownEllipse(sender As Object, e As RoutedEventArgs)
Debug.WriteLine("PreviewMouseDownEllipse")
End Sub
Private Sub MouseDownEllipse(sender As Object, e As RoutedEventArgs)
Debug.WriteLine("MouseDownEllipse")
End Sub
End Class
End Namespace
Related examples in the same category