Hit Result Behavior : Mouse « Windows Presentation Foundation « C# / C Sharp

Home
C# / C Sharp
1.2D Graphics
2.Class Interface
3.Collections Data Structure
4.Components
5.Data Types
6.Database ADO.net
7.Design Patterns
8.Development Class
9.Event
10.File Stream
11.Generics
12.GUI Windows Form
13.Language Basics
14.LINQ
15.Network
16.Office
17.Reflection
18.Regular Expressions
19.Security
20.Services Event
21.Thread
22.Web Services
23.Windows
24.Windows Presentation Foundation
25.XML
26.XML LINQ
C# / C Sharp by API
C# / CSharp Tutorial
C# / CSharp Open Source
C# / C Sharp » Windows Presentation Foundation » MouseScreenshots 
Hit Result Behavior
Hit Result Behavior
  
<Window x:Class="WpfApplication1.HitTestExample"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="WpfApplication1" Height="300" Width="300">


  <Canvas x:Name="canvas1"
    MouseLeftButtonDown="OnMouseLeftButtonDown">
    <Rectangle Canvas.Left="20" Canvas.Top="20" Width="100"
      Height="60" Stroke="Black" Fill="LightBlue" Opacity="0.7" />

    <Rectangle Canvas.Left="70" Canvas.Top="50" Width="100"
      Height="60" Stroke="Black" Fill="LightBlue" Opacity="0.7" />


    <Rectangle Canvas.Left="150" Canvas.Top="80" Width="100"
      Height="60" Stroke="Black" Fill="LightBlue" Opacity="0.7" />


    <Rectangle Canvas.Left="20" Canvas.Top="100" Width="50"
      Height="50" Stroke="Black" Fill="LightBlue" Opacity="0.7" />


    <Rectangle Canvas.Left="40" Canvas.Top="60" Width="50"
      Height="50" Stroke="Black" Fill="LightBlue" Opacity="0.7" />


    <Rectangle Canvas.Left="30" Canvas.Top="130" Width="50"
      Height="50" Stroke="Black" Fill="LightBlue" Opacity="0.7" />


  </Canvas>
</Window>

//File:Window.xaml.cs
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Shapes;


namespace WpfApplication1
{
    public partial class HitTestExample : Window
    {
        private List<Rectangle> hitList = new List<Rectangle>();
        private EllipseGeometry hitArea = new EllipseGeometry();
        public HitTestExample()
        {
            InitializeComponent();
        }
        private void OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            foreach (Rectangle rect in canvas1.Children)
            {
                rect.Fill = Brushes.Red;
            }

            Point pt = e.GetPosition(canvas1);
            hitArea = new EllipseGeometry(pt, 1.01.0);
            hitList.Clear();
            VisualTreeHelper.HitTest(canvas1, null,new HitTestResultCallback(HitTestCallback),new GeometryHitTestParameters(hitArea));
            if (hitList.Count > 0)
            {
                foreach (Rectangle rect in hitList)
                {
                    rect.Fill = Brushes.Blue;
                }
                Console.WriteLine("You hit " + hitList.Count.ToString() " rectangles.");
            }
        }
        public HitTestResultBehavior HitTestCallback(HitTestResult result)
        {
            IntersectionDetail intersectionDetail = ((GeometryHitTestResult)result).IntersectionDetail;
            switch (intersectionDetail)
            {
                case IntersectionDetail.FullyContains:
                    hitList.Add((Rectangle)result.VisualHit);
                    return HitTestResultBehavior.Continue;
                case IntersectionDetail.Intersects:
                    return HitTestResultBehavior.Continue;
                case IntersectionDetail.FullyInside:
                    return HitTestResultBehavior.Continue;
                default:
                    return HitTestResultBehavior.Stop;
            }
        }
    }
}

   
    
  
Related examples in the same category
1.A line which monitors the mouse entering its areaA line which monitors the mouse entering its area
2.Respond When the User Rotates the Mouse WheelRespond When the User Rotates the Mouse Wheel
3.Mouse Position and TranslateTransformMouse Position and TranslateTransform
4.Mouse PositionMouse Position
5.Detect whether the mouse button is pressed or released using the MouseButtonState property.Detect whether the mouse button is pressed or released using the MouseButtonState property.
6.Handler MouseLeftButtonDown and MouseLeftButtonUp eventsHandler MouseLeftButtonDown and MouseLeftButtonUp events
7.Mouse Enter and leave a BorderMouse Enter and leave a Border
8.Make an object follow the mouse pointer as it moves on the screen.Make an object follow the mouse pointer as it moves on the screen.
9.Use Mouse.AddPreviewMouseDownHandler(myEllipse, PreviewMouseDownEllipse);Use Mouse.AddPreviewMouseDownHandler(myEllipse, PreviewMouseDownEllipse);
10.Use Mouse.AddMouseDownHandler(myEllipse, MouseDownEllipse);Use Mouse.AddMouseDownHandler(myEllipse, MouseDownEllipse);
11.Use Mouse.PreviewMouseDown /Mouse.MouseDown Attribute from Grid elementUse Mouse.PreviewMouseDown /Mouse.MouseDown Attribute from Grid element
12.Grid MouseMoveGrid MouseMove
13.Grid MouseLeftButtonDownGrid MouseLeftButtonDown
14.Grid MouseLeftButtonUpGrid MouseLeftButtonUp
15.UI Element Mouse Clicked EventsUI Element Mouse Clicked Events
16.Handles the MouseDown event on the CanvasHandles the MouseDown event on the Canvas
17.Handles the MouseDown event on the UniformGridHandles the MouseDown event on the UniformGrid
18.Mouse cursor override and clearMouse cursor override and clear
19.Check the mouse event sourceCheck the mouse event source
20.Use the Mouse Wheel action methods that are defined by the IScrollInfo interfaceUse the Mouse Wheel action methods that are defined by the IScrollInfo interface
21.Mouse.LostMouseCaptureEventMouse.LostMouseCaptureEvent
22.Use Mouse.Capture to let a Control capture an eventUse Mouse.Capture to let a Control capture an event
23.Capture Mouse EllipseCapture Mouse Ellipse
24.Get mouse position with Mouse.GetPositionGet mouse position with Mouse.GetPosition
25.Point Hit TestPoint Hit Test
26.Replease mouse with Mouse.Capture(null)Replease mouse with Mouse.Capture(null)
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.