<Window 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">
<Window.Resources>
<Storyboard x:Key="OnLoaded"/>
</Window.Resources>
<Window.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<BeginStoryboard x:Name="OnLoaded_BeginStoryboard" Storyboard="{DynamicResource OnLoaded}"/>
</EventTrigger>
</Window.Triggers>
<StackPanel>
<Rectangle Fill="Red" Width="200" Height="200" x:Name="RectangleArea"/>
<Label d:LayoutOverrides="Height" Width="Auto" Height="28" x:Name="HitLabel" Content="Label"/>
</StackPanel>
</Window>
//File:Window.xaml.vb
Imports System
Imports System.IO
Imports System.Net
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Data
Imports System.Windows.Input
Imports System.Windows.Media
Imports System.Windows.Media.Animation
Imports System.Windows.Navigation
Namespace InputExamples
Public Partial Class PointHitTest
Private hitStatus As String
Public Sub New()
Me.InitializeComponent()
End Sub
Protected Overrides Sub OnInitialized(e As EventArgs)
MyBase.OnInitialized(e)
AddHandler CompositionTarget.Rendering, AddressOf Me.CompositionTarget_Rendering
End Sub
Private Sub CompositionTarget_Rendering(sender As Object, e As EventArgs)
Dim position As Point = Mouse.GetPosition(RectangleArea)
hitStatus = "no hit"
VisualTreeHelper.HitTest(RectangleArea, Nothing, New HitTestResultCallback(AddressOf HitTestResultHandler), New PointHitTestParameters(position))
Me.HitLabel.Content = [String].Format("Result of the hit test: {0}", hitStatus)
End Sub
Public Function HitTestResultHandler(result As HitTestResult) As HitTestResultBehavior
Dim hitResult As PointHitTestResult = DirectCast(result, PointHitTestResult)
hitStatus = [String].Format("{0} was hit at this point: {1}", DirectCast(hitResult.VisualHit, FrameworkElement).Name, hitResult.PointHit.ToString())
Return HitTestResultBehavior.[Continue]
End Function
End Class
End Namespace
|