问题描述
你好,我在寻找图像点时遇到问题。我的目标是当我单击两个点时,我必须找到两个点之间的距离。这是我的代码
<ImageGrid.Row="3" Grid.Column="2" Grid.ColumnSpan="4" x:Name="DIIMG2" cal:Message.Attach="[Event MouseDown]=[Action GetimagePoint($eventArgs)]"></Image>
在这里您可以看到我使用MouseDown事件,并且当事件触发时,我无法使用X,Y坐标获取点值,例如以下代码
public void GetimagePoint(object sender,MouseEventArgs e)
{
int myX = e.X;
int myY = e.Y;
}
我遇到了类似'MouseEventArgs'的编译错误,其中不包含'X'的定义,并且找不到可访问的扩展方法'X'接受类型为'MouseEventArgs'的第一个参数(您是否缺少using指令或程序集参考?)。如何克服这个问题。我需要找到X和Y值表示坐标值。在此先感谢。
解决方法
在WPF中,您定义2个参数GetImagePoint($source,$eventArgs)
,
并在访问(X,Y)的函数中,使用GetPosition方法:
public void GetImagePoint(object sender,System.Windows.Input.MouseEventArgs e)
{
if (!(sender is System.Windows.Controls.Image)) return;
System.Windows.Point px = e.GetPosition((System.Windows.Controls.Image)sender);
int myX = (int)px.X;
int myY = (int)px.Y;
}
我建议您检查鼠标是否在图像上单击: