Mouse Position and TranslateTransform
<Grid 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.MousePosition" Width="640" Height="480">
<Rectangle Width="Auto" Height="Auto" x:Name="Rectangle" StrokeDashCap="Square" />
<Ellipse Width="14" Height="14" x:Name="secondEllipse"/>
<Ellipse d:LayoutOverrides="Height" Margin="20" Width="14" Height="14" x:Name="firstEllipse"/>
<Ellipse d:LayoutOverrides="Width" Margin="30" Width="14" Height="14" x:Name="fourthEllipse"/>
<Ellipse d:LayoutOverrides="Width" Margin="20" Width="14" Height="14" x:Name="thirdEllipse"/>
<Ellipse Fill="Red" Margin="10" Width="16" Height="16" x:Name="DragEllipse"/>
</Grid>
//File:Window.xaml.vb
Imports System
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
Imports System.Windows.Shapes
Namespace InputExamples
Public Partial Class MousePosition
Private ellipseTransform As New TranslateTransform()
Public Sub New()
Me.InitializeComponent()
End Sub
Protected Overrides Sub OnInitialized(e As EventArgs)
MyBase.OnInitialized(e)
DragEllipse.RenderTransform = ellipseTransform
AddHandler CompositionTarget.Rendering, AddressOf Me.CompositionTarget_Rendering
End Sub
Private Sub CompositionTarget_Rendering(sender As Object, e As EventArgs)
Dim mouse1 As Point = Mouse.GetPosition(firstEllipse)
Dim mouse2 As Point = Mouse.GetPosition(secondEllipse)
Dim mouse3 As Point = Mouse.GetPosition(thirdEllipse)
Dim mouse4 As Point = Mouse.GetPosition(fourthEllipse)
Console.WriteLine(mouse1.ToString())
Console.WriteLine(mouse2.ToString())
Console.WriteLine(mouse3.ToString())
Console.WriteLine(mouse4.ToString())
Dim position As Point = Mouse.GetPosition(DragEllipse)
ellipseTransform.X += position.X - (DragEllipse.Width / 2)
ellipseTransform.Y += position.Y - (DragEllipse.Height / 2)
End Sub
End Class
End Namespace
Related examples in the same category