Use Ellipse event delegate

image_pdfimage_print


   
  

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Code Events" Height="300" Width="300">
  <Grid HorizontalAlignment="Center" VerticalAlignment="Center">
    <Button>
      <Grid>
        <Grid.ColumnDefinitions>
          <ColumnDefinition />
          <ColumnDefinition />
        </Grid.ColumnDefinitions>

        <Canvas Width="20" Height="18" VerticalAlignment="Center">
          <Ellipse x:Name="myEllipse"
                   Canvas.Left="1" Canvas.Top="1" Width="16" Height="16"
                   Fill="Yellow" Stroke="Black" />
        </Canvas>
        <TextBlock Grid.Column="1">Click!</TextBlock>
      </Grid>
    </Button>
  </Grid>
</Window>


//File:Window.xaml.cs


using System;
using System.Windows;
using System.Diagnostics;

namespace WpfApplication1
{

    public partial class Window1 : System.Windows.Window
    {
        public Window1()
        {
            InitializeComponent();

            myEllipse.MouseDown += MouseDownEllipse;
            myEllipse.PreviewMouseDown += PreviewMouseDownEllipse;
        }
        void PreviewMouseDownEllipse(object sender, RoutedEventArgs e)
        { Debug.WriteLine("PreviewMouseDownButton"); }

        void MouseDownEllipse(object sender, RoutedEventArgs e)
        { Debug.WriteLine("MouseDownButton"); }        
    }
}