Search code examples
c#wpfhittest

WPF. Is it possible to do ellipse "rectangle bounds" hittest?


Is there possible to make hit test in ellipse bound rectangle, like on this image?

enter image description here


Solution

  • you can put them both into a border grid and check if it was clicked

    XAML:

                <Grid MouseDown="Border_MouseDown">
                    <Rectangle Width="100"
                               Height="100"
                               Fill="Green" />
                    <Ellipse Width="100"
                             Height="100"
                             Fill="Orange" />
                </Grid>
    

    Code behind

       private void Border_MouseDown(object sender, MouseButtonEventArgs e)
            {
                MessageBox.Show("hit it");
            }
    

    EDIT Just to make it complete here comes the XAML for green regions only:

       <Grid>
                <Rectangle Width="100"
                           Height="100"
                           Fill="Green"
                           MouseDown="Border_MouseDown" />
                <Ellipse Width="100"
                         Height="100"
                         Fill="Orange" />
            </Grid>