MouseLeave 事件的确切触发时间

本文关键字:时间 事件 MouseLeave | 更新日期: 2023-09-27 18:36:12

根据这篇 MSDN 文章:"引发 MouseLeave 事件是为了响应在对象的边界区域之外发生的触摸事件。但是在实现中,我发现它在释放对象边界区域的点击时被触发(与OnMouseLeave完全相同)。

那么如何在点击 UI 对象的边界外时触发它呢?

MouseLeave 事件的确切触发时间

我是C#和StackOverflow的新手,但我想我可能会贡献我的发现。我在谷歌上快速搜索了",找到了这篇关于检测GUI之外的点击的文章。

这是一个快速方法/描述(可在链接中找到),用于检测在 GUI 上绘制的矩形之外的点击。"当您使用 GUI 窗口或组/区域时,您可以使用其 Rect 来检查鼠标是否在里面。"

Rect windowPos = new Rect(10,10,200,150);
    void OnGUI()
    {
        Event e = Event.current;
        windowPos = GUI.Window(0, windowPos, drawWindow, "MyWindow");
    if (e.type == EventType.MouseDown && !windowPos.Contains(e.mousePosition))
        {
             // Click was outside of the GUI window
        }
    }
    void drawWindow(int aID)
    {
        // draw the window content
    }

只需阅读该页面即可。它似乎回答了他们的问题。

祝你好运!