Point Hit Test with VisualTreeHelper.HitTest : UI Element « Windows Presentation Foundation « C# / CSharp Tutorial

Home
C# / CSharp Tutorial
1.Language Basics
2.Data Type
3.Operator
4.Statement
5.String
6.struct
7.Class
8.Operator Overload
9.delegate
10.Attribute
11.Data Structure
12.Assembly
13.Date Time
14.Development
15.File Directory Stream
16.Preprocessing Directives
17.Regular Expression
18.Generic
19.Reflection
20.Thread
21.I18N Internationalization
22.LINQ
23.GUI Windows Forms
24.Windows Presentation Foundation
25.Windows Communication Foundation
26.Workflow
27.2D
28.Design Patterns
29.Windows
30.XML
31.XML LINQ
32.ADO.Net
33.Network
34.Directory Services
35.Security
36.unsafe
C# / C Sharp
C# / C Sharp by API
C# / CSharp Open Source
C# / CSharp Tutorial » Windows Presentation Foundation » UI Element 
24.48.9.Point Hit Test with VisualTreeHelper.HitTest
<StackPanel xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  xmlns:d="http://schemas.microsoft.com/expression/interactivedesigner/2006"
  mc:Ignorable="d"
  x:Class="InputExamples.PointHitTest" 
  Width="640" Height="480">

  <StackPanel.Resources>
    <Storyboard x:Key="OnLoaded"/>
  </StackPanel.Resources>
  <StackPanel.Triggers>
    <EventTrigger RoutedEvent="FrameworkElement.Loaded">
      <BeginStoryboard x:Name="OnLoaded_BeginStoryboard" Storyboard="{DynamicResource OnLoaded}"/>
    </EventTrigger>
  </StackPanel.Triggers>
  <Rectangle Fill="Red" Margin="20" Width="200" Height="200" x:Name="RectangleArea"/>
</StackPanel>
//File:Window.xaml.cs

using System;
using System.IO;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Navigation;

namespace InputExamples
{
  public partial class PointHitTest
  {
    public PointHitTest()
    {
      this.InitializeComponent();
    }
    
    protected override void OnInitialized(EventArgs e)
    {
      base.OnInitialized(e);
      CompositionTarget.Rendering += this.CompositionTarget_Rendering;
    }

    private void CompositionTarget_Rendering(object sender, EventArgs e)
    {
        Point position = Mouse.GetPosition(RectangleArea);
      VisualTreeHelper.HitTest(RectangleArea,null,new HitTestResultCallback(HitTestResultHandler),
              new PointHitTestParameters(position)
      );
    }
    
    public HitTestResultBehavior HitTestResultHandler(HitTestResult result)
    {
      PointHitTestResult hitResult = (PointHitTestResult)result;
      Console.WriteLine(((FrameworkElement)hitResult.VisualHit).Name);
      Console.WriteLine(hitResult.PointHit.ToString());
         return HitTestResultBehavior.Continue;
    }
  }
}
WPF Point Hit Test With Visual Tree Helper Hit Test
24.48.UI Element
24.48.1.Parent and child timelines with default HoldEnd FillBehaviorParent and child timelines with default HoldEnd FillBehavior
24.48.2.Freezables and elementFreezables and element
24.48.3.Define a resource at the page root level on a FrameworkElement and reference itDefine a resource at the page root level on a FrameworkElement and reference it
24.48.4.Print Logical TreePrint Logical Tree
24.48.5.Print Visual TreePrint Visual Tree
24.48.6.Find enclosure componentFind enclosure component
24.48.7.Logical Visual Tree SampleLogical Visual Tree Sample
24.48.8.About Dialog with Tree WalkingAbout Dialog with Tree Walking
24.48.9.Point Hit Test with VisualTreeHelper.HitTestPoint Hit Test with VisualTreeHelper.HitTest
24.48.10.Find inner visual elementFind inner visual element
24.48.11.Print Visual(Canvas)Print Visual(Canvas)
24.48.12.Change control background in mouse enter and leaveChange control background in mouse enter and leave
24.48.13.Changing graphical elementsChanging graphical elements
24.48.14.Change the Visibility property of a UIElement.Change the Visibility property of a UIElement.
24.48.15.Change FillChange Fill
24.48.16.Extend FrameworkElement to create your own shape
24.48.17.Dump Content Property Attributes
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.