How to get the coordinates of an image mouse click in the event handler?
Posted
by Edward Tanguay
on Stack Overflow
See other posts from Stack Overflow
or by Edward Tanguay
Published on 2010-03-16T08:34:08Z
Indexed on
2010/03/16
8:36 UTC
Read the original article
Hit count: 275
In the following WPF app, I have an Image in a ContentControl. When the user clicks on the image, how can I get the x/y coordinates of where the mouse clicked on the image?
XAML:
<Window x:Class="TestClick828374.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<StackPanel Margin="10">
<ContentControl Content="{Binding TheImage}" MouseDown="ContentControl_MouseDown"/>
</StackPanel>
</Window>
Code-Behind:
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.ComponentModel;
namespace TestClick828374
{
public partial class Window1 : Window, INotifyPropertyChanged
{
#region ViewModelProperty: TheImage
private Image _theImage;
public Image TheImage
{
get
{
return _theImage;
}
set
{
_theImage = value;
OnPropertyChanged("TheImage");
}
}
#endregion
public Window1()
{
InitializeComponent();
DataContext = this;
TheImage = new Image();
TheImage.Source = new BitmapImage(new Uri(@"c:\test\rectangle.png"));
TheImage.Stretch = Stretch.None;
TheImage.HorizontalAlignment = HorizontalAlignment.Left;
}
#region INotifiedProperty Block
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
#endregion
private void ContentControl_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
//how to get the coordinates of the mouse click here on the image?
}
}
}
© Stack Overflow or respective owner