Caliburn.Micro Click事件以查找图像点并计算距离

问题描述

你好,我在寻找图像点时遇到问题。我的目标是当我单击两个点时,我必须找到两个点之间的距离。这是我的代码

<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;
    }

我建议您检查鼠标是否在图像上单击:

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...