2011-08-24 91 views
2

我想向用户显示图像,并获取用户点击的图像像素或点击图像的坐标。 其实我想在指定的坐标上放一个点,并将其保存在磁盘上。什么坐标图像被点击?

+4

ASP.NET? WPF? WinForms?... – vcsjones

+0

我想在wpf中。 – armin

回答

8

下面是如何使用的WinForms访问点击坐标(因为你没有指定...):

  1. 添加一个PictureBox到窗体
  2. 添加一个Click事件处理
private void pictureBox1_Click(object sender, EventArgs e) 
{ 
    var mouseArgs = (MouseEventArgs)e; 
    // coordinates are now available in mouseArgs.X and mouseArgs.Y 
} 

编辑: 下面是如何做到这一点的WPF:

  1. 添加图片到你的画布
  2. 添加mouseDown事件处理
private void image1_MouseDown(object sender, MouseButtonEventArgs e) 
{ 
    var clickedPoint = e.GetPosition((Image)sender); 
    // coordinates are now available in clickedPoint.X and clickedPoint.Y 
} 

编辑: 而对于完整性,下面是ASP.NET中的一种方法:

  1. 添加的ImageButton到窗体
  2. 添加一个Click事件处理
protected void ImageButton1_Click(object sender, ImageClickEventArgs e) 
{ 
    // coordinates are now available in e.X and e.Y 
} 
+1

+1英里。 – vcsjones

+1

如果由于窗口限制放大或重新缩放会怎样?例如,在800x600窗口中显示1920x1600图像。 – armin

+0

它会给你'图像'控件中的点击点。所以如果图像是1920x1611,但图像缩放到800x600,并且我完全点击右下角,坐标将是X = 800,Y = 600 – Cocowalla