【问题标题】:Caliburn.Micro Click Event To find Image Point and calculate DistanceCaliburn.Micro 点击事件查找图像点并计算距离
【发布时间】:2020-12-30 17:44:25
【问题描述】:

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

<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”的定义,并且找不到接受“MouseEventArgs”类型的第一个参数的可访问扩展方法“X”(您是否缺少 using 指令或程序集参考?) 。如何克服这一点。我需要找到 X 和 Y 值表示坐标值。提前致谢。

【问题讨论】:

    标签: c# wpf mvvm caliburn.micro


    【解决方案1】:

    在您的 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;
        }
    

    我建议你检查鼠标是否点击图像:

    【讨论】:

    • 不,还没有解决。我无法访问 int myX = e.X; ... e.X 无法访问
    • 你必须使用GetPosition方法..看我的固定答案
    • 感谢您的回复。我认为命名空间将是 System.Drawing.Image 在这一行中(System.Drawing.Point px = e.GetPosition((System.Drawing.Image)sender);)我得到这个编译时错误无法将 System.Drawing.Image 转换为 System.Windows.InputElement
    • 对我来说图像的命名空间是System.Windows.Controls。和System.Windows for Point.. 但是如果没有关于您正在加载的图像的完整程序,很难正确回答
    • 我正在从 BitmapImage 加载图像 谢谢我正在尝试
    猜你喜欢
    • 2021-09-22
    • 1970-01-01
    • 2021-02-05
    • 2016-04-12
    • 1970-01-01
    • 2017-12-05
    • 2014-11-29
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多