Search code examples
wpfcoordinatespixelmousemove

WPF how to show an Image.Source (BitmapSource) pixel position?


Let's suppose I've got an image which shows its source in a scaled way, how could i use a MouseMove event to show in a label or textblock the pixel position in which the cursor is?

(I need the pixel coordinates not the coordinates of the image relative to its size)

Thanks in advance.


Solution

  • You can find out the actual pixel height and width from the ImageSource.

        ImageSource imageSource = image.Source;
        BitmapImage bitmapImage = (BitmapImage) imageSource ;
    

    Now since you got the image displayed in Image control. You can easily map the mouse position to the Pixel scale.

    pixelMousePositionX = e.GetPosition(image).X * bitmapImage.PixelWidth/image.Width;
    pixelMousePositionY = e.GetPosition(image).Y * bitmapImage.PixelHeight/image.Height;
    

    Have fun

    Jobi Joy